2018年Web開發(fā)者最佳學(xué)習(xí)路徑

Learn HTML

  • Learn the basics and how to write semantic HTML
  • Dividing page into sections and how to structure the DOM properly
  • Make at least 5 HTML pages - focus on structure
  • Don't worry about making them pretty yet

Basics of CSS

  • Learn the basics of CSS
  • Learn how to use Grid and Flexbox
  • Media Queries and Responsive Websites
  • Style the HTML Pages that you made in last step

Basics of JavaScript

  • Learn the syntax and basic constructs
  • Learn how to manipulate DOM
  • Understand the concepts such as hoisting, event bubbling, prototype etc
  • Learn Fetch API / Ajax(XHR)
  • Learn ES6+ new features and writing modular JavaScript

Jquery - Optional

Make some responsive website and add some interactivity with JavaScript

Search projects on Github and open a few PRs

Some of the ideas are listed below:

  • Enhance the UI, make any demo pages responsive or improve the design
  • Look for any open issues that you can solve
  • Refactor any of the code or implement the best practices that you learnt along the way
  • Link this repo, tell them you are learning and ask for feedback on your PR and how you can improve
  • Needs some knowledge of 'git' - Optional

Give yourself a pat on the back. You are getting there:

  • There are many jobs out there requiring the skillset that you have got till the point
  • You can easily start getting some freelance work or find yourself a job if you may.
  • However, don't stop here, there is still a long way to go if you want to have a better career

Package Manager( NPM or Yarn )

  • Learn one, you automatically learn the other.
  • Package managers help you bring external libraries and plugins into your projects, so that you don't have to worry about copying the libraries manaually or go through the hasle of updating etc
  • Both are almost same, there are just implementation differences, just pick any

Install some external dependency in your application

Go ahead and install some external library in the webpages that you made above. e.g. install some toast plugin and when user clicks a button, show him the toast message or create a login form and do the form validation using some form validation library and play with different options and see how to install different versions

CSS Preprocessors

Preprocessors let you add functionaity on top of CSS and let you do things that CSS don't. Have a look at any of them and see what they have to offer and pick the suitable one.

Some CSS Preprocessors:

  • Sass
  • PostCSS
  • Less
  • Stylus

Learn Sass for now

  • I would recommend you to learn Sass for now
  • PostCSS is a nice-to-have and is sort of "Babel" for CSS. You can use it on top of Sass also.
  • However, I would recommend you to learn Sass and revisit PostCSS later

CSS Framework

You really don't need to learn any but still they are good to have.
e.g.:

  • Bootstrap
  • Materialize CSS
  • Bulma

CSS Architecture

There are multiple ways to structure your CSS better and to make it more maintainable.
e.g.:

  • BEM
  • OOCSS
  • SMACSS
  • SUITCSS
  • Atomic
    You should know about the differences - personally I find myself using BEM more

Build tool

Tools to help you in the building/bundling and development

Automated Build Tools

I would just pick NPM Scripts in 2018. However, if you want to pick something else look at Gulp and see how you can benefit from it

  • NPM Scripts
  • Gulp

Validation Tool

  • ESLint
  • JSLint
  • JSHint
  • JSCS

Module Bundler

Use Webpack for apps, Rollup for libraries. You don't need Rollup for now and can do everything with webpack but feel free to revisit Rollup later.

  • Webpack
  • Rollup
  • Parcel

Create something - Maybe a library

Congrates! You can call yourself 75% modern JavaScript developer now. Now go ahead and create something with all that you have learnt. Maybe create some sort of library in which you have to use Sass and JavaScript. Then use webpack to convert Sass to CSS and use babel to transpile ES6 code. Once you are done with, release it on Github and npm.


Pick a Framework

  • There is more and more demand for React.js these days.
  • You can pick any of the listed ones and you will be fine.
  • Have a look at all of them and what you like.
  • Important - Don't buy into the hype, compare and understant!

e.g.

  • React.js
    There are not specific to React though, you can use them in any framework or app.
    • Redux
    • Mobx
  • Vue.js
    • Vuex
  • Angular
    It isn't used any more expect for the old apps. Make sure if you pick Angular it is Angular2+ and not angular.js
    • RxJS
      Even if you don't pick angular, RxJS is an amazing library and can be used out of angular. Give it a try afterwards!
    • ngrx

Praticle time

Now you know everything that might need to build a modern JavaScript application. Go ahead and make some application with whatever framework you picked. Pick anything and start!
Learn how to makesure and improve the performance of your application.
e.g. Interactivity Time, Page Speed Index, Lighthouse Score etc


Testing your Apps

There are lots and lots of different tools for different purposes. I mostly find myself using the ones listed on the left. However, before and learn them, I would recomment you to first understand the different test types, look at all the options available and use the ones most suitable for your needs.
Here is a good summary to get you started: An Overview of JavaScript Testing in 2018

  • Jest
  • Mocha
  • Protractor
  • Karma
  • Enzyme

Progressive WebApps

Learn about service workers and how to make progress web apps

Static Type checkers

You don't need to learn these but they really give you superpowers and can be mastered in a few hours. I would pick TypeScript but feel free to check both and pick.
e.g.

  • TypeScript
  • Flow

Server Side Rendering

Learn about server side rendering in whatever framework you picked.
e.g.

  • React
    • Next.js
    • After.js
  • Vue.js
    • Nuxt.js
  • Angular
    • Universal

All things that weren't mentioned above

  • Canvas
  • HTML5
  • APIs
  • SVG
  • sourcemaps
  • functional programming
  • TC39

(https://github.com/kamranahmedse/developer-roadmap)

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末透葛,一起剝皮案震驚了整個(gè)濱河市滞乙,隨后出現(xiàn)的幾起案子免猾,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涩盾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門励背,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)春霍,“玉大人,你說(shuō)我怎么就攤上這事叶眉≈啡澹” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵衅疙,是天一觀的道長(zhǎng)莲趣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)饱溢,這世上最難降的妖魔是什么喧伞? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮绩郎,結(jié)果婚禮上潘鲫,老公的妹妹穿的比我還像新娘。我一直安慰自己嗽上,他們只是感情好次舌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著兽愤,像睡著了一般彼念。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浅萧,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天逐沙,我揣著相機(jī)與錄音,去河邊找鬼洼畅。 笑死吩案,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帝簇。 我是一名探鬼主播徘郭,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼丧肴!你這毒婦竟也來(lái)了残揉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芋浮,失蹤者是張志新(化名)和其女友劉穎抱环,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡镇草,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年眶痰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梯啤。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡竖伯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出因宇,到底是詐尸還是另有隱情黔夭,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布羽嫡,位于F島的核電站本姥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏杭棵。R本人自食惡果不足惜婚惫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望魂爪。 院中可真熱鬧先舷,春花似錦、人聲如沸滓侍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撩笆。三九已至捺球,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夕冲,已是汗流浹背氮兵。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歹鱼,地道東北人泣栈。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像弥姻,于是被迫代替她去往敵國(guó)和親南片。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容