Upgrade to Pro — share decks privately, control downloads, hide ads and more …

From student to web professional: Hints, tips & cheat codes

From student to web professional: Hints, tips & cheat codes

A presentation I gave for the CS359 - Web Programming students in Computer Science Department of University of Crete.

*wipes tear*

Zaharenia Atzitzikaki

May 20, 2015
Tweet

More Decks by Zaharenia Atzitzikaki

Other Decks in Design

Transcript

  1. From student to web professional
    Hints, tips & cheat codes
    Zaharenia Atzitzikaki •

    View Slide

  2. From student to web professional
    Hints, tips & cheat codes
    Zaharenia Atzitzikaki •

    View Slide

  3. Hi.

    View Slide

  4. I’m Zaharenia.

    View Slide

  5. I’m a designer.

    View Slide

  6. I’m a designer.

    View Slide

  7. I’m a designer.
    Now Lead Designer at Workable

    View Slide

  8. I’m a designer.
    Previously freelancing, agency work
    Now Lead Designer at Workable

    View Slide

  9. class00

    View Slide

  10. Two parts

    View Slide

  11. Two parts

    View Slide

  12. Two parts
    Part 1: Let’s talk

    View Slide

  13. Two parts
    Part 1: Let’s talk
    Part 2: Technical

    View Slide

  14. From Uni to real life

    View Slide

  15. What CSD taught me

    View Slide

  16. WHAT CSD TAUGHT ME
    How to learn stuff

    View Slide

  17. WHAT CSD TAUGHT ME
    How to work with others

    View Slide

  18. WHAT CSD TAUGHT ME
    How to embrace design

    View Slide

  19. STOP! HAMMER TIME.
    Designer? Why?!

    View Slide

  20. What CSD didn’t teach me

    View Slide

  21. WHAT CSD DIDN’T TEACH ME
    How to be professional

    View Slide

  22. WHAT CSD DIDN’T TEACH ME
    How to work efficiently

    View Slide

  23. WHAT CSD DIDN’T TEACH ME
    How to market my skills

    View Slide

  24. Where are the jobs?

    View Slide

  25. WE’RE LUCKY
    Demand >>>>> Supply

    View Slide

  26. “ If you work on the Web and you
    complain about the financial
    crisis, you do something wrong. „
    Thanos Papavasileiou • UpNorth Conference

    View Slide

  27. FIVE YEARS AGO
    Limited options

    View Slide

  28. Corporate or freelance

    View Slide

  29. Few startups

    View Slide

  30. Limited funding options

    View Slide

  31. TODAY
    Options galore

    View Slide

  32. Think global

    View Slide

  33. View Slide

  34. Freelance.

    View Slide

  35. Freelance.
    Work in a start-up.

    View Slide

  36. Freelance.
    Work in a start-up.
    Sell digital goods.

    View Slide

  37. Working in a startup

    View Slide

  38. Start-ups != 

    old-school corporate

    View Slide

  39. Flexibility

    View Slide

  40. Satisfaction

    View Slide

  41. Minimum Viable Product

    View Slide

  42. Start small

    View Slide

  43. MVP does not imply
    bad design

    View Slide

  44. Kirill Shikhanov

    View Slide

  45. Rapid iterations

    View Slide

  46. Ship first, worry later

    View Slide

  47. Done is better than perfect

    View Slide

  48. Teamwork is everything

    View Slide

  49. Word of advice

    View Slide

  50. Don’t stop learning

    View Slide

  51. Develop your social skills

    View Slide

  52. Allie Brosh

    View Slide

  53. Networking

    View Slide

  54. Learn & help others learn

    View Slide

  55. View Slide

  56. View Slide

  57. Level up your CSS

    View Slide

  58. Preprocessors

    View Slide

  59. Prepro… what?

    View Slide

  60. View Slide

  61. Sass

    View Slide

  62. Sass
    LESS

    View Slide

  63. Sass
    LESS
    Stylus

    View Slide

  64. Sass
    LESS
    Stylus

    View Slide

  65. WHY SASS?
    Variables

    View Slide

  66. // A nightmare to maintain
    a { color: #fc3; }
    p { color: #fc3; }
    nav { background-color: #fc3; }

    View Slide

  67. // Variables are cool!
    $brand-color: #fc3;
    a { color: $brand-color; }
    p { color: $brand-color; }
    nav { background-color: $brand-color; }

    View Slide

  68. WHY SASS?
    Nesting

    View Slide





  69. Sasquatch Records

    View Slide

  70. header[role="banner"] {
    margin: 20px 0 30px 0;
    #logo {
    float: left;
    margin: 0 20px 0 0;
    img {
    display: block;
    opacity: .95;
    }
    }
    }

    View Slide

  71. WHY SASS?
    @mixin - @extend

    View Slide

  72. // Lots of repetitive styles
    p {
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.5;
    }
    footer {
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.5;
    }

    View Slide

  73. // Abstract them in a mixin!
    @mixin default-type {
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.5;
    }
    p { @include default-type; }
    footer { @include default-type; }

    View Slide

  74. .alert {
    padding: 15px;
    font-size: 1.2em;
    text-align: center;
    background: $color-accent;
    }
    .important {
    font-size: 4em;
    }

    View Slide

  75. // Combine styles without code bloat
    .alert-positive {
    @extend .alert;
    @extend .important;
    background: #9c3;
    }

    View Slide

  76. .alert, alert-positive {
    padding: 15px;
    font-size: 1.2em;
    text-align: center;
    background: #ea4c89;
    }
    .important, .alert-positive {
    font-size: 4em;
    }
    .alert-positive {
    background: #9c3;
    }

    View Slide

  77. WHY SASS?
    Partials

    View Slide

  78. View Slide

  79. _header.scss

    View Slide

  80. _body.scss
    _header.scss

    View Slide

  81. _body.scss
    _header.scss
    _footer.scss

    View Slide

  82. _body.scss
    _header.scss
    _footer.scss

    View Slide

  83. _body.scss
    _header.scss
    style.scss
    _footer.scss

    View Slide

  84. _body.scss
    _header.scss
    style.scss
    _footer.scss
    style.css

    View Slide

  85. // Import shared styles
    @import 'shared/alerts';
    @import 'shared/avatars';
    @import 'shared/loaders';
    // Import base styles
    @import 'backend/base/grid';
    @import 'backend/base/icons';
    @import 'backend/base/typography';
    @import 'backend/base/forms';
    // Import modules
    @import 'backend/modules/billing';
    @import 'backend/modules/filters';

    View Slide

  86. Modularize

    View Slide

  87. CSS sucks at scaling

    View Slide

  88. Design systems, not pages

    View Slide

  89. HOW?
    Create modules by
    observing patterns

    View Slide

  90. HOW?
    Create layouts for
    different sections

    View Slide

  91. Everything is a module

    View Slide

  92. View Slide

  93. Lorem ipsum dolor sit amet,
    consectetur adipiscing elit.
    Donec a posuere velit.

    View Slide

  94. Lorem ipsum dolor sit amet,
    consectetur adipiscing elit.
    Donec a posuere velit.

    View Slide

  95. Lorem ipsum dolor sit amet,
    consectetur adipiscing elit.
    Donec a posuere velit.

    View Slide


  96. class="img">



    @Stubbornella 14 minutes ago


    View Slide

  97. .media, .bd { overflow:hidden; }
    .media .img { float:left; margin-right: 10px; }
    .media .img img { display:block; }
    .media .imgExt { float:right; margin-left: 10px; }

    View Slide

  98. Modules should do one
    thing and one thing only

    View Slide

  99. Combine modules
    for fun and profit

    View Slide

  100. Modules should be
    oblivious of their context

    View Slide

  101. WHAT’S THE BENEFIT?
    Complexity is limited

    View Slide

  102. WHAT’S THE BENEFIT?
    Code is predictable

    View Slide

  103. Rules of the game

    View Slide

  104. RULE #1
    You need version control

    View Slide

  105. RULE #2
    Obey rule #1

    View Slide

  106. RULE #3
    Your text editor is
    your friend

    View Slide

  107. RULE #4
    You + MVC + OO = LFE

    View Slide

  108. RULE #5
    It’s never too early to
    worry about performance

    View Slide

  109. RULE #6
    Automate boring work

    View Slide

  110. Thanks! You rock.
    Zaharenia Atzitzikaki •

    View Slide