mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-07 22:11:09 +08:00
149 lines
8.5 KiB
Markdown
149 lines
8.5 KiB
Markdown
GHLandy Translating
|
||
|
||
2017 is the year that front-end developers should go back and master the basics
|
||
============================================================
|
||
|
||
![](https://cdn-images-1.medium.com/max/1000/1*1Xsnx4_M8uJc2klBxEtGLQ.jpeg)
|
||
|
||
In our fast-paced ecosystem, we tend to spend our time trying out the latest inventions, then arguing about them on the internet.
|
||
|
||
I’m not saying we shouldn’t do that. But we should probably slow down a bit and take a look at the things that don’t change all that much. Not only will this improve the quality of our work and the value we deliver — it will actually help us learn these new tools faster.
|
||
|
||
This post is a mix of my experience and my wishes for the New Year. And I want to hear your suggestions in the comments just as much as I want to share my own.
|
||
|
||
### Learn how to write readable code
|
||
|
||
Most of our work lies not in writing new code, but maintaining existing code. That means you end up reading code much more often then writing it, so you need to optimize your code for _the next programmer_, not for the interpreter.
|
||
|
||
I recommend reading these three amazing books — in this order, from shortest to longest:
|
||
|
||
* [The Art of Readable Code][1] by Dustin Boswell
|
||
* [Clean Code: A Handbook of Agile Software Craftsmanship][2] by Robert C. Martin
|
||
* [Code Complete: A Practical Handbook of Software Construction][3] by Steve McConnell
|
||
|
||
![](https://cdn-images-1.medium.com/max/1000/1*YQGwR6skf705fovSLCbmXQ.jpeg)
|
||
|
||
### Learn JavaScript deeper
|
||
|
||
When every week we have a new JavaScript framework that’s better than any older framework, it’s easy to spend most of your time learning frameworks rather than the language itself. If you’re using a framework but don’t understand how it works, _stop and start learning the language until you understand how the tools you use work_.
|
||
|
||
* A great start is [Kyle][4] Simpson’s book series [You Don’t Know JavaScript][5], which you can read online for free.
|
||
* [Eric Elliott][6] has a huge list of [JavaScript topics to learn in 2017][7].
|
||
* [Henrique Alves][8] has a list of [things you should know before using React][9](actually any framework).
|
||
* [JavaScript Developers: Watch Your Language][10] by Mike Pennisi — understand TC-39 process for new ECMAScript features.
|
||
|
||
### Learn functional programming
|
||
|
||
For years we wanted classes in JavaScript. Now we finally have them but don’t want to use them anymore. Functions are all we want! We even write HTML using functions (JSX).
|
||
|
||
* [Functional-Light JavaScript][11] by Kyle Simpson.
|
||
* Professor Frisby’s [Mostly adequate guide to functional programming ebook][12] and [his free course][13].
|
||
|
||
![](https://cdn-images-1.medium.com/max/1000/1*Helkj3sq3oVOc-dtjRgrYQ.jpeg)
|
||
|
||
### Learn design basics
|
||
|
||
As front-end developers, we’re closer to users than anybody else on the team — maybe even closer than designers. And if designers have to verify every pixel you put on screen, you’re doing something wrong.
|
||
|
||
* Design for Hackers: [a book][14] and [a free course][15] by [David Kadavy][16].
|
||
* [Design for Non-Designers][17] talk by [Tracy Osborn][18].
|
||
* [Design of Web Applications][19] by [Nathan Barry][20].
|
||
* [On Web Typography][21] by [Jason Santa Maria][22].
|
||
* [The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity][23] by Alan Cooper.
|
||
* A few articles on animation in UI: [How to Use Animation to Improve UX][24], [Transitional Interfaces][25].
|
||
|
||
### Learn how to work with humans
|
||
|
||
Some of us come to programming because we prefer to interact with computers more than with humans. Unfortunately, that’s not how it works.
|
||
|
||
We rarely work in isolation: we have to talk to other developers, designers, managers — and sometimes even users. That’s hard. But it’s important if you want to really understand what you’re doing and why, because that’s where the value in what we do lies.
|
||
|
||
* [Soft Skills: The software developer’s life manual][26] by [John Sonmez][27].
|
||
* [The Clean Coder: A Code of Conduct for Professional Programmers][28] by Robert C. Martin.
|
||
* [Start with No: The Negotiating Tools that the Pros Don’t Want You to Know][29] by Jim Camp.
|
||
|
||
![](https://cdn-images-1.medium.com/max/1000/1*zv6BXllLujNl-vDqkXQMqw.jpeg)
|
||
|
||
### Learn how to write for humans
|
||
|
||
A big portion of communication with our colleagues and other people are textual: task descriptions and comments, code comments, Git commits, chat messages, emails, tweets, blog posts, etc.
|
||
|
||
Imagine how much time people spend reading and understanding all that. If you can reduce this time by writing more clearly and concisely, the world will be a better place to work.
|
||
|
||
* [On Writing Well: The Classic Guide to Writing Nonfiction][30] by William Zinsser.
|
||
* [The Elements of Style][31] by William Strunk and E. B. White.
|
||
* [Orwell’s rules on writing][32].
|
||
* In Russian: awesome [Glavred course][33].
|
||
|
||
### Learn the old computer science wisdom
|
||
|
||
Front-end development isn’t just animated dropdown menus any more. It’s more complicated than ever before. Part of that notorious “JavaScript fatigue” stems from the increased complexity of the tasks we have to solve.
|
||
|
||
This, however, means that it’s time to learn from all wisdom that non-front-end developers have built up over the decades. And this is where I want to hear your recommendations the most.
|
||
|
||
Here are a couple resources I personally would recommend on this:
|
||
|
||
* [Learn To Think Like A Computer Scientist][34] course at Coursera.
|
||
* [The five programming books that meant most to me][35] by [DHH][36]
|
||
|
||
|
||
* * *
|
||
|
||
What would you recommend? What are you going to learn in 2017?
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
作者简介:
|
||
|
||
![](https://cdn-images-1.medium.com/fit/c/60/60/0*FXw8cxdKYar82R9X.jpeg)
|
||
|
||
Web developer, passionate photographer and owner of crazy dogs.
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://medium.freecodecamp.com/what-to-learn-in-2017-if-youre-a-frontend-developer-b6cfef46effd#.ss9xbwrew
|
||
|
||
作者:[Artem Sapegin][a]
|
||
译者:[译者ID](https://github.com/译者ID)
|
||
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]:https://medium.freecodecamp.com/@sapegin
|
||
[1]:https://www.amazon.com/gp/product/0596802293/
|
||
[2]:https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/
|
||
[3]:https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/
|
||
[4]:https://medium.com/u/5dccb9bb4625
|
||
[5]:https://github.com/getify/You-Dont-Know-JS
|
||
[6]:https://medium.com/u/c359511de780
|
||
[7]:https://medium.com/javascript-scene/top-javascript-frameworks-topics-to-learn-in-2017-700a397b711#.zhnbn4rvg
|
||
[8]:https://medium.com/u/b6c3841651ac
|
||
[9]:http://alves.im/blog/before-dive-into-react.html
|
||
[10]:https://bocoup.com/weblog/javascript-developers-watch-your-language
|
||
[11]:https://github.com/getify/Functional-Light-JS
|
||
[12]:https://github.com/MostlyAdequate/mostly-adequate-guide
|
||
[13]:https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript
|
||
[14]:https://www.amazon.com/Design-Hackers-Reverse-Engineering-Beauty-ebook/dp/B005J578EW
|
||
[15]:http://designforhackers.com/
|
||
[16]:https://medium.com/u/5377a93ef640
|
||
[17]:https://youtu.be/ZbrzdMaumNk
|
||
[18]:https://medium.com/u/e611097a5bd4
|
||
[19]:http://nathanbarry.com/webapps/
|
||
[20]:https://medium.com/u/ac3090433602
|
||
[21]:https://abookapart.com/products/on-web-typography
|
||
[22]:https://medium.com/u/8eddcb9e4ac4
|
||
[23]:https://www.amazon.com/Inmates-Are-Running-Asylum-Products-ebook/dp/B000OZ0N62/
|
||
[24]:http://babich.biz/how-to-use-animation-to-improve-ux/
|
||
[25]:https://medium.com/@pasql/transitional-interfaces-926eb80d64e3#.igcwawszz
|
||
[26]:https://www.amazon.com/Soft-Skills-software-developers-manual/dp/1617292397/
|
||
[27]:https://medium.com/u/56e8cba02b
|
||
[28]:https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073/
|
||
[29]:https://www.amazon.com/Start-No-Negotiating-Tools-that-ebook/dp/B003EY7JEE/
|
||
[30]:https://www.amazon.com/gp/product/0060891548/
|
||
[31]:https://www.amazon.com/Elements-Style-4th-William-Strunk/dp/0205313426/
|
||
[32]:http://www.economist.com/blogs/prospero/2013/07/george-orwell-writing
|
||
[33]:http://maximilyahov.ru/glvrd-pro/
|
||
[34]:https://www.coursera.org/specializations/algorithms
|
||
[35]:https://signalvnoise.com/posts/3375-the-five-programming-books-that-meant-most-to-me
|
||
[36]:https://medium.com/u/54bcbf647830
|