十年踪迹

JavaScript New Year Resolutions Countdown – JavaScript Scene – Medium

十年踪迹 · 2017-01-03推荐 · 167阅读 CET/4 293 CET/6 17 原文链接

It’s that time of year — time to start thinking of resolutions for the new year. But this time you’re actually going to check some of them off, and we’re here to help.

Here are some resolution suggestions for your new year:

10. Master the JavaScript Interview

Whether you’re new to JavaScript or you’re a veteran, there are some concepts that come up really often in JavaScript interviews. For those of you who have been around this block before, interviews have changed. There is a much larger focus on concepts such as functional and reactive programming, so it’s important to understand some basic essentials.

Check out these resources:

Book smarts are only half the battle though. You’ll also need to get your live coding skills up to par. You’ll need hundreds of hours of practice writing actual code. For that, I recommend tackling the JavaScript Basics track on FreeCodeCamp and the exercises in Eloquent JavaScript. When you read JavaScript articles online, be sure to jump into your favorite editor, Codepen, or the Babel repl and type out the code examples to experiment with them.

If you want to test your mettle in a mock interview, I’m happy to help you out. I’ve been hiring JavaScript developers for years. I am the tech advisor for JS Cheerleader (a tech agent for top JavaScript developers). In that position, I do real pre-screen JavaScript certification interviews for all of her potential clients.

9. Use TDD

Test Driven Development (TDD) is the process of writing tests prior to implementing features. There are lots of benefits of TDD. In my experience, it helps you write better, more loosely coupled code because unit tests force modularity, and writing tests first forces you to think about the API design prior to writing the implementation. Most importantly, TDD can help you reduce production bug density between 40% — 80%. Next to code review, it’s the most effective thing you can do to improve code quality. Read “The Outrageous Cost of Skipping TDD & Code Reviews”.

8. Practice Networking

Just like every other industry out there, who you know is just as important as what you know in software development. Get out there and make some more friends this year! The people you know can open doors for you, or provide social proof when you need to land a new job or a new client. Learn to be open to new and interesting opportunities, and learn to recognize a good opportunity when it presents itself to you. Here are some great ways to meet new people:

  • Twitter

  • Conferences

  • Co-work spaces

  • Coffee shops — particularly shops located near tech hubs, such as the SoMa neighborhood in San Francisco, Playa Vista in Los Angeles, or the Freemont tech corridor in Seattle (or downtown). No tech cafes in your neighborhood? Try searching for tech meetups on Meetup.com.

Here are some tips to help you make friends:

  • Be a valuable resource

  • Be a connector

  • Show gratitude and appreciation

  • Respect people’s privacy, contact protocols, and boundaries

7. Learn Redux

Redux is a “predictable state container for JavaScript apps”. It’s important because it has transformed the way we think about client side state management and application architecture. Even if you don’t plan to use Redux in your app, you should learn Redux because it will teach you a lot about managing application state in a way that is easier to understand, reproduce, debug, and maintain.

Redux combines Flux architecture with functional programming using reduce (think Array.prototype.reduce()) to derive application state from a stream of action objects. Check out “10 Tips for Better Redux Architecture” to get started on your Redux journey.

6. Learn a New Library or Framework

As I’ve already mentioned, if you’re not already using Redux, you should learn it. If you have yet to master the core JavaScript language and basic essentials mentioned in the JavaScript interview questions suggestion, consider that a prerequisite. But once you have the basics down, every JavaScript developer should be familiar with at least one front-end framework. The obvious candidates are React and Angular 2. I recommend React. For other suggestions, check out “Top JavaScript Frameworks and Topics to Learn in 2017”.

5. Polish up Your Online Presence

Whether you like it or not, your online presence is a big part of your personal brand. I know you’re a person, but you’re also a brand. Like it or not, as an adult, you’re constantly selling yourself to potential employers, coworkers, and business partners. You need to decide what your brand is, and realize that how you present yourself online will dictate which opportunities will be open for you, and which ones won’t.

It’s totally OK to be yourself — just be the best version of yourself that you know how to be. Hiring managers do look at social media profiles, and they will make hiring decisions based on what they find.

There are some mistakes that will cut you off from a whole lot of good opportunities. Are you guilty of any of these social media posting blunders?

  • Inappropriate content or photos

  • Coming across as a heavy drinker / drug user

  • Posting discriminatory or harassing messages (race, religion, gender, etc…)

  • Badmouthing previous employers, boss, or coworkers

  • Bullying / abuse

  • Poor communication skills

Here are some things you do want your profiles & posts to convey:

  • Professional image

  • Great communication skills

  • Great personality

  • Friendly/helpful interactions

4. Be Positive / Stop Complaining

2016 was crazy. I have never seen so many people complaining about all the amazing tools that the OSS ecosystem has produced for us free of charge. “JavaScript Fatigue” became a popular meme — but did that meme solve any problems?

In case you’re wondering, no, complaining about JavaScript fatigue didn’t solve anything. As users of JavaScript ourselves, the OSS community was already aware of the problem and hard at work on real solutions such as process simplifying tools like create-react-app and Next.js. What it did do is discourage OSS authors and maintainers who got a deluge of frustrating, negative messages.

“the OSS community was already aware of the problem [of JavaScript fatigue] and hard at work on real solutions…”

Around 2010, the JavaScript ecosystem entered a period of Cambrian explosion which has been growing exponentially, and bringing with it a huge host of new tools and frameworks to learn. It’s time to stop stressing out about keeping up — no one is keeping up, and that’s OK.

I know it’s frustrating, especially for newcomers trying to get their bearings, but it has also brought us great innovations like React, Redux, Babel, TypeScript, Webpack, Rollup, etc…

“…no one is keeping up, and that’s OK.”

The good news is, all this great new tooling is centered around a single language. When I was starting my programming career, there was a similar explosion, but it wasn’t centered around a single ecosystem — it was an explosion of completely new and different programming languages.

It’s time to stop complaining so much and start appreciating how good we have it. Take the opportunity to thank the authors of the open-source tools you use. Better yet — contribute pull requests, and help relieve some of the maintenance burden. Get a taste of what it’s like to do the hard (often uncompensated) work that most people take for granted.

“Remember, OSS maintainers don’t owe you anything, but you do owe them respect.”

Most importantly, try to show empathy and gratitude. Let’s be more positive in the new year.

3. Code for Good: Use Your Programming Skills for a Good Cause

There are lots of great ways to put your coding super-powers to good use. Remember:

“With great power goes great responsibility” — J. Hector Fezandie, 1894 (also, Spiderman)

Here are some great ways you can contribute to a good cause:

  • Volunteer at a nonprofit code training program

  • Contribute to an open-source project

  • Volunteer to build software for nonprofit

  • Start a philanthropic project at your company like Microsoft’s Hack for Good program

  • Create a mentorship or apprenticeship program at your company and commit to hiring from groups with difficult backgrounds, such as refugees or homeless communities

2. Improve Your Development Process

Chances are good that there is plenty of room for you to make serious improvements to your development process and team productivity. Here are some tips:

  • Use Code Reviews. Every hour spent in code review saves 33 hours in maintenance.

  • Use TDD. So important it got its own resolution.

  • Deploy daily. Continuous integration and continuous delivery help automate and normalize the most risky parts of the development process. The more frequently you do them, the easier they become, until the chores are almost entirely automated and no longer place cognitive load on developers.

  • Avoid interruptions. According to Microsoft Research, an interrupted task takes about twice as long to complete, and contains twice as many errors as an uninterrupted task.

  • Batch meetings. In the spirit of avoiding interruptions, meetings count as interruptions. As much as you can, batch meetings together and block out chunks of at least 3 hours of quiet time where nobody is allowed to schedule meetings with you or the other developers on your team. Better yet, eliminate as many meetings as you can. Prefer asynchronous online communication whenever possible, and reserve meetings strictly for high-bandwidth back-and-forth communication.

  • Batch email. Same thing with meetings. Don’t let email distract you. Check your email exactly twice per day: Morning, and afternoon / evening. If it’s possible in your workplace / culture, skip email altogether on some days.

  • Batch social media. See above. You’re probably thinking I’m a hypocrite now because I am constantly posting stuff on Twitter. I’m gonna let you in on a little secret: I auto-schedule posts days in advance, and then check in and interact only when I have some minutes to spare between blocks of work.

  • Batch async chats. From time to time, it’s good to check in with your team via async chat to make yourself available for Q&A. I like to have 2 uninterrupted 2–3 hour blocks per day for uninterrupted coding. Before and after those blocks, I’ll check chat channels and make sure nobody is waiting on my help.

  • Turn off notifications. Turn off your notifications — on your phone and on your computer. When programs ask you if you want to enable notifications, click the “Are you kidding me?! Why on earth would I ever do that?!” button — or whatever button sounds like it’ll disable notifications. Make exceptions for emergencies.

  • Ask for help when you need it — and create a safe environment on your team where asking for help is encouraged. We all go blind to our own code mistakes sometimes, but there’s no excuse for staying stuck on problems for hours when somebody else might spot a solution in seconds.

  • Eliminate deadlines. You’ll probably need to be a manager or have a manager ally to pull this one off. If you’re not a manager, share “Why Deadlines Need to Drop Dead” with your manager.

1. Compassion

When people ask me what the most important tech skill is, I always answer, “compassion”. Why? Because you can’t be your best without it.

Compassion for users will motivate you to:

  • Create a more friendly UX

  • Create faster page loads and smoother animations

  • Solve actual customer problems rather than crank out features that nobody asked for and nobody wants

Compassion for your teammates will motivate you to:

  • Write better, more maintainable code

  • Put real effort into better code reviews

  • Mentor team members & answer questions

Compassion for your employees and reports will motivate you to:

  • Improve the development process

  • Improve the developer UX for your project

  • Protect developers from interruptions

  • Handle problems and performance issues with empathy and kindness

  • Listen to the needs of the team

  • Communicate honestly and responsibly with business management and customers

  • Protect the interests of both the business and the development team, without hanging either out to dry & without tossing anybody under the bus

Compassion will also help you. Everybody appreciates compassionate people, and most will return the favor.

“If you want others to be happy, practice compassion. If you want to be happy, practice compassion” ~ The Dalai Lama

Now you know: The most important tech skill in the world is compassion.

Next Steps

Now that you’ve got some resolutions for the new year, which tech should you study up on?

相关文章