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

Front-End Career

Front-End Career

This talk was presented as a 2017 wrap up for Udacity's React Nanodegree program, where I'm part of the official team of instructors.

The idea was to share my experience and beliefs on what things one should consider learning in order to become a Front-End developer. It was targeted for an audience that is either starting with web development or people in different areas of computer programming wanting to shift their focus to the web.

The talk has received really good feedback from the students so far.

Udacity's React Nanodegree program:
https://br.udacity.com/course/react-nanodegree--nd019

Video (in Brazilian Portuguese):
https://www.youtube.com/watch?v=nll-IIQmVNs

Rafael Rinaldi

December 12, 2017
Tweet

More Decks by Rafael Rinaldi

Other Decks in Technology

Transcript

  1. • Travel abroad • Spend money and get proper training

    (take it seriously) • Should be your number one priority English
  2. • You don’t have to master all of Computer Science

    • It’ll help you find solutions to your problems • It’ll smooth out the transition between languages and paradigms • Abstractions: somebody probably already have solved it for you • Can help you in programming interviews Computer Science
  3. • Modularization • Refactoring • Code Smells • DRY •

    Duplication is better than the wrong abstraction Best Practices
  4. • Reading and writing to files and folders • Navigating

    through the file system • Standard streams Command Line
  5. • Reading and writing to files and folders • Navigating

    through the file system • Standard streams • Shell Script Command Line
  6. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes JavaScript
  7. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes • Hoisting JavaScript
  8. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes • Hoisting • AJAX (Asynchronous JavaScript and XML) (XMLHttpRequest) JavaScript
  9. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes • Hoisting • AJAX (Asynchronous JavaScript and XML) (XMLHttpRequest) • ES2015 JavaScript
  10. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes • Hoisting • AJAX (Asynchronous JavaScript and XML) (XMLHttpRequest) • ES2015 • Async JavaScript
  11. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes • Hoisting • AJAX (Asynchronous JavaScript and XML) (XMLHttpRequest) • ES2015 • Async • Module Formats (CommonJS, ES Modules) JavaScript
  12. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes • Hoisting • AJAX (Asynchronous JavaScript and XML) (XMLHttpRequest) • ES2015 • Async • Module Formats (CommonJS, ES Modules) • npm JavaScript
  13. • The syntax • Context and scopes (how "this" works)

    (call, apply, bind) • Prototypes • Hoisting • AJAX (Asynchronous JavaScript and XML) (XMLHttpRequest) • ES2015 • Async • Module Formats (CommonJS, ES Modules) • npm • Node.js JavaScript
  14. • Understand why React is an interesting choice • Great

    component API • Virtual DOM • Functional Programming • React Native React
  15. CSS

  16. • Sketch • Diagrams • Grid systems • Typography •

    Color theory • Responsive Design Design
  17. • Sketch • Diagrams • Grid systems • Typography •

    Color theory • Responsive Design • Progressive Enhancement Design
  18. • Branching • Merging and Rebasing • Cherry Picking •

    Tagging for releases • Diffing changes Git and GitHub
  19. • Branching • Merging and Rebasing • Cherry Picking •

    Tagging for releases • Diffing changes • Pull Requests Git and GitHub
  20. • Branching • Merging and Rebasing • Cherry Picking •

    Tagging for releases • Diffing changes • Pull Requests • Code Reviews Git and GitHub
  21. • Text editor or IDE that feels comfortable • Linting

    (ESLint) • Formatting (Prettier) Tools
  22. • Text editor or IDE that feels comfortable • Linting

    (ESLint) • Formatting (Prettier) • REPL Tools
  23. • Text editor or IDE that feels comfortable • Linting

    (ESLint) • Formatting (Prettier) • REPL • Documentation lookup Tools
  24. • Text editor or IDE that feels comfortable • Linting

    (ESLint) • Formatting (Prettier) • REPL • Documentation lookup • Debugging Tools
  25. • Exercise empathy • Listen • Review the code, not

    the person • Communication via text is super hard Communication
  26. • Exercise empathy • Listen • Review the code, not

    the person • Communication via text is super hard • Pair Programming Communication
  27. • Exercise empathy • Listen • Review the code, not

    the person • Communication via text is super hard • Pair Programming • Agile Ceremonies Communication
  28. • Exercise empathy • Listen • Review the code, not

    the person • Communication via text is super hard • Pair Programming • Agile Ceremonies • Ask for feedback (not the good, but the ugly) Communication
  29. • Exercise empathy • Listen • Review the code, not

    the person • Communication via text is super hard • Pair Programming • Agile Ceremonies • Ask for feedback (not the good, but the ugly) • Documentation Communication