TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Experienced JavaScript programmers, what are your recommendations?

39 点作者 gits1225超过 7 年前
Recommendations (not exclusive) can fall into:<p><pre><code> - Libraries - Frameworks - Tools - Books - Videos - Posts</code></pre>

18 条评论

5zBFyURxgY超过 7 年前
Just don&#x27;t do it. I totally regret I went for Javascript.<p>I started with systems programming with C++ etc.. At some point some 5 years ago I made the unfortunate decision to go for Javascript. After 5 years I can now confidently say that programming in Javascript is not about what you are creating, it is about what ESxxx version you use, what framework you use, whether you&#x27;re using Promises or whatever idea people come up with tomorrow, and all this in an ever accellerating and continuing hype. I am sick of it already. Almost everything I learn is already, or will be soon, deprecated.<p>I would recommend people to go for C++&#x2F;Qt or any language&#x2F;framework where what you learn will not be wasted soon so you can use your valuable time to create things rather than learn the next framework or language idea all the time.
评论 #15111576 未加载
评论 #15109956 未加载
评论 #15109931 未加载
评论 #15117182 未加载
评论 #15116378 未加载
评论 #15111257 未加载
评论 #15126431 未加载
dcherman超过 7 年前
This post is entirely going to be based on questions that I would expect an experienced developer that I was interviewing to be able to have a conversation on. This is not a starting point for a beginner.<p>Understand the language and how it works on a deep level. If there&#x27;s ever a question of &quot;should this work?&quot;, read the spec for that feature - it&#x27;s generally not that hard to understand.<p>Understand the runtime. What is an event loop? What&#x27;s a macro task? A micro task? How does each work? How does all of this integrate with the DOM as far as what might cause a dropped frame, block rendering, etc..?<p>Understand the ideas behind the framework you&#x27;re using. I&#x27;m not going to recommend an individual one to avoid framework wars, but most of them embrace virtual dom these days, so you should have a basic concept of what that is. Does it make applications faster? Does it make it developing easier?. Another common framework point is unidirectional data flow; why is unidirectional data flow considered a good thing these days? What were the downfalls of bidirectional data flow?<p>Understand API design and state boundaries. Using the example of a shopping cart, who owns what? Where is the state of the cart stored? An individual item price? Name? How do I add an item to the cart? You can design a cart that functions fantastically, but is completely un-testable if the API is designed wrong or there is not well defined boundaries on what components own what state.<p>That&#x27;s a few things off the top of my head.
bloomca超过 7 年前
I highly recommend to deeply understand JavaScript itself first. I personally recommend books from Dr. Axel Rauschmayer -- <a href="http:&#x2F;&#x2F;exploringjs.com" rel="nofollow">http:&#x2F;&#x2F;exploringjs.com</a> After reading it you will have a strong foundation in prototypes, clojures, high-order functions, and other fundamental concepts.<p>Also, I can recommend spending some time playing with native DOM interface -- so you will understand what is event loop, how listeners are attached&#x2F;detached, what is event delegation, how to traverse DOM (and what does it cost), and all that jazz.<p>Nowadays parts of functional programming are on the rise, so you might want to familiarize yourself with it a little bit -- <a href="https:&#x2F;&#x2F;github.com&#x2F;MostlyAdequate&#x2F;mostly-adequate-guide" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;MostlyAdequate&#x2F;mostly-adequate-guide</a> this is a good book, and fist 5-7 chapters are good enough to change your look at the programming.<p>This is a foundation, and without it it will be hard to write decent code in a fast and reliable manner. After that you can pick any library (whatever is needed for the jobs around you) or any framework, and try to solve your problem in it. There is not that much a benefit from just learning libraries, frameworks and tools per se, so I recommend to move gradually, and you will understand during your path what do you need better.
balazsdavid987超过 7 年前
Recommendations...for what purpose? Please be more specific. Where are you now? What do you want to achieve? Do you want to build something from scratch or just polish your skills? Etc.<p>For example, I can tell you that Phaser is a very good library for game development (or similiarly, others that X is for Y), but that is pretty much useless if you are completely disinterested in that given area.
评论 #15109590 未加载
DigitalSea超过 7 年前
My biggest recommendation is: form your own opinions and make your own informed decisions around tooling&#x2F;frameworks&#x2F;libraries and so on. Front-end development is very opinionated, there are a lot of egos flying around and everyone like a used car salesman wants to sell you something and tell you how great it is.<p>Don&#x27;t let anyone tell you Javascript is a mistake learning, because while it has its flaws so do many other languages. Learn the bad parts and then avoid them like you would any other language.<p>My front-end stack at the moment is:<p>- Webpack<p>- Aurelia Javascript framework<p>- VueJS<p>- Sass + Autoprefixer<p>As for posts, books and whatnot: those are constantly changing and being outdated, so I have no recommendations.
评论 #15112766 未加载
probinso超过 7 年前
I am a big fan of cheddar cheese. Although peperjack is often better, cheddar is solid an contributes to more meals.
jbreckmckye超过 7 年前
Echoing the user 5zBFyURxgY, I would say &quot;don&#x27;t&quot;.<p>The problem is not the language or even the ecosystem, but the jobs. Most JS gigs are not interesting and not technically challenging. For all the noise the community makes about us being &#x27;engineers&#x27;, the overwhelming bulk of JS jobs today are just the CSS&#x2F;HTML tweaking roles of five years ago implemented in 2017 technology.<p>Occasionally you will get to write some Node server code. These apps will usually be thin proxies over &#x27;real&#x27; API web services and the tickets will generally be about marshalling data, waiting for asynchronous responses and handling authentication.<p>I have been lucky enough to do better: first an adtech R&amp;D role (mixed bag - I hate adtech as an industry, and I loathed our rapacious attitude to people&#x27;s personal data, but I had lots of autonomy and got to manage my own feasibility studies); the second was a soujourn into web VR (not as technically deep as it sounds - you might get to write a shader or two; that&#x27;s it).<p>JavaScript development is good if you want to make decent money doing something easy, and never worry about unemployment. It is not good if you want anything else. It is not a promising field if you want programmatic challenges; if you want to build in a niche of domain-specific knowledge; if you don&#x27;t like relearning basic tools because the basics keep being reinvented; if you want to be respected as more than a pixel wrangler (you get a LOT of direct requests from senior managers to swap things around etc.); or if you want to keep your options open.<p>That last point is important. It is quite hard to move out of front end development. The field still has a poor repuation, and because the work is generally basic employers tend to be a little sceptical of your skills. Not insuperable but definitely a strike against JS as a specialism.<p>I really regret not getting out of JS when I could.
评论 #15112787 未加载
ankyth27超过 7 年前
Not a very experienced js programmer myself, but I have heard this again and again from professionals : master ES6 first. Choose React, Vue or Angular next. Use solutions like Redux next for managing complex scenarios. Keep learning always but don&#x27;t get overwhelmed by sheer amount of options available to JS developers nowadays... You don&#x27;t need to learn most of those if your fundamentals are clear.
VvR-Ox超过 7 年前
You should definetly take a looke at vue - it&#x27;s awesome!
frigen超过 7 年前
Reactjs with create-react-app<p>Once you&#x27;ve built a couple of reasonably sized applications, then learn Redux.
评论 #15109749 未加载
DutchKevv超过 7 年前
It could be a bit far fetched..<p>But I recommend skipping all frameworks and do a lot with native JS and learn the prototype chain.. this will make you understand a lot more about how JavaScript works and also how JS is attached to the DOM.<p>Frameworks change so often in JS world!
评论 #15111776 未加载
benshell超过 7 年前
My advice is to go to meetup groups, conferences, and workshops where you can interact with others face-to-face. I just got back from React Rally in Salt Lake City, and I often attend Sacramento and SF Bay Area JS meetup groups. Find a group in your area, and you&#x27;ll quickly pick up on current trends and recommendations.
Boombitch超过 7 年前
Not that experienced but your interest entirely depends on the product you develop. Rather than focusing on the tech to use for the product, focus on the product. Depending on one js framework in this ever changing environment is really tedious later on .
stankot超过 7 年前
Hey there,<p>I&#x27;ll start with the disclaimer, as lately HN comments have tendency of becoming toxic - everything I write is my personal opinion.<p>With that behind us I can start. I&#x27;ll try to write this for someone who knows very little about JS, but knows her&#x2F;his way around basic programming&#x2F;cs.<p>Firstly I love JavaScript, I have been writing it for 10 years now, but there are bad parts of it as well.<p>Let&#x27;s start with good stuff<p>* It is evolving in the right direction<p>* You can do a lot of things with it (web apps, games, mobile apps, server...)<p>* Materials for learning are everywhere<p>* It will be easy to find a job<p>Bad stuff<p>* It is moving at crazy to follow pace<p>* There are a lot of different ways of doing same things<p>* As it is very hip thing to do, there is a lot of bu___hit (beware of the hype train)<p>Learn plain javascript before moving to frameworks. Focus on ES6 and new stuff as it will make your life way easier.<p>* Someone already mentioned Dr. Axel Rauschmayer, pick any of his books - <a href="http:&#x2F;&#x2F;exploringjs.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;exploringjs.com&#x2F;</a><p>* Another good one is You Dont Know JS - <a href="https:&#x2F;&#x2F;github.com&#x2F;getify&#x2F;You-Dont-Know-JS" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;getify&#x2F;You-Dont-Know-JS</a><p>Try to make small app on your own. You&#x27;ll get into all sort of problems, but that&#x27;s the fun part I guess. That will help you to understand what frameworks are trying to solve.<p>Then you can start learning one of the frameworks. React, Vue, Angular are all solid choices. My pick is React, as I know it best. Apply the same mindset as with learning plain JS. Try to write your own stuff on a small scale before importing huge libraries.<p>Good example is redux, everybody on the internet are screaming that you should always use it, but even Dan Abramov (author of redux) has great read - You might not need redux <a href="https:&#x2F;&#x2F;medium.com&#x2F;@dan_abramov&#x2F;you-might-not-need-redux-be46360cf367" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;@dan_abramov&#x2F;you-might-not-need-redux-be4...</a><p>Try handling state yourself, then if you see that you need big guns, try redux. Same goes for any big library or technology.<p>So, buckle up, do it thoroughly and try to find fun in doing javascript. And the most important generic advice - do a real pet project instead of just blindly following tutorials.<p>This will take some time, and if you just want enough knowledge to lend a job, pick a framework, throw yourself into the deep end and swim your way out. This is something I wouldn&#x27;t recommend but it works for some people.<p>Hope this helps, cheers! S<p>P.S.<p>Random JS talks I like<p>* Wat - Gary Bernhardt, 2012 <a href="https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;talks&#x2F;wat" rel="nofollow">https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;talks&#x2F;wat</a> It never fails to crack me up<p>* Live React: Hot Reloading with Time Travel - Dan Abramov, 2015 <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=xsSnOQynTHs" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=xsSnOQynTHs</a> Classic nowadays, it is a delight to watch Dan Abramov presenting, only thing missing is a mic drop at the end<p>* What the heck is the event loop anyway? - Philip Roberts, 2014 <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=8aGhZQkoFbQ" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=8aGhZQkoFbQ</a> This is a must watch for every js developer<p>EDIT: Sorry for the formatting, HN doesn&#x27;t support markdown
wolco超过 7 年前
quasar framework. Based on vue2 hybrid beautiful full featured framework
jmurphyau超过 7 年前
I recommend Glimmer and Ember.js
git-pull超过 7 年前
Books (free):<p>- <i>Javascript Patterns</i> <a href="https:&#x2F;&#x2F;shichuan.github.io&#x2F;javascript-patterns&#x2F;" rel="nofollow">https:&#x2F;&#x2F;shichuan.github.io&#x2F;javascript-patterns&#x2F;</a>: Good for wrapping your brain around scoping and how things flow in JS. It&#x27;s a very nimble language. While you won&#x27;t use every single one, internalizing their concepts are central to be efficient in wrangling JS and reading other&#x27;s.<p>- <i>Patterns For Large-Scale JavaScript Application Architecture </i> <a href="https:&#x2F;&#x2F;addyosmani.com&#x2F;largescalejavascript&#x2F;" rel="nofollow">https:&#x2F;&#x2F;addyosmani.com&#x2F;largescalejavascript&#x2F;</a><p>Docs &#x2F; Articles:<p>- Callback functions: <a href="https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Glossary&#x2F;Callback_function" rel="nofollow">https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Glossary&#x2F;Callback_f...</a> Absolutely mandatory.<p>- Currying: <a href="https:&#x2F;&#x2F;www.sitepoint.com&#x2F;currying-in-functional-javascript&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.sitepoint.com&#x2F;currying-in-functional-javascript&#x2F;</a><p>- &#x27;return this&#x27; for method chaining: <a href="https:&#x2F;&#x2F;schier.co&#x2F;blog&#x2F;2013&#x2F;11&#x2F;14&#x2F;method-chaining-in-javascript.html" rel="nofollow">https:&#x2F;&#x2F;schier.co&#x2F;blog&#x2F;2013&#x2F;11&#x2F;14&#x2F;method-chaining-in-javascr...</a><p>Annotated Source:<p>(soak these in 10-20 minutes every day over a month or two)<p>- <a href="http:&#x2F;&#x2F;backbonejs.org&#x2F;docs&#x2F;backbone.html" rel="nofollow">http:&#x2F;&#x2F;backbonejs.org&#x2F;docs&#x2F;backbone.html</a><p>- <a href="http:&#x2F;&#x2F;underscorejs.org&#x2F;docs&#x2F;underscore.html" rel="nofollow">http:&#x2F;&#x2F;underscorejs.org&#x2F;docs&#x2F;underscore.html</a><p>Frameworks:<p>- None. Webpack 3 + jQuery + babel + pjax<p>Tips:<p>- The longer you hold off on a framework, the better. Focus on getting your stuff out the door, test coverage + CI feedback loop, core business data schemas, and trimming off technical debt. After a couple of iterations and months of stability, consider a&#x2F;b testing a framework.<p>- Most libraries are still in ES5. Wrap your brain around ES5 is a sure thing. Not everyone is using newer JS features.<p>- In many programming languages in your webstack, you&#x27;re likely going to be dealing with node for build utilities and compilation.<p>- Webpack, while it seems unintuitive at first, can be pretty nice once you get over the hump. It&#x27;s like a miss of the old r.js configs and the declartive-ness of grunt.<p>- As a parting note, don&#x27;t feel a necessity to buy into single page application and frameworks. They&#x27;re a tremendous time sink and the ROI just isn&#x27;t there.
knewter超过 7 年前
elm-lang.org