DEV Community

Cover image for Evergreen skills to use throughout your career?
Sung M. Kim
Sung M. Kim

Posted on • Edited on

Evergreen skills to use throughout your career?

Technologies change everyday.
Web is fast changing.
From static HTML, Dynamic websites and to WebAssemblies.
And You see a bunch of new JavaScript libraries released everday.

It's hard to keep up and skillsets change every few years.

But I see developers using vi/emacs/make/gcc skills for decades.

๐Ÿค”What are the evergreen skills you can invest in (or learning now)โ“


** Update on 12/14/2018 **
Check out this great post by Alex Fawkes, in which he discusses the topic more in depth.

Latest comments (61)

Collapse
 
drubb profile image
drubb

Patience

Collapse
 
darthbob88 profile image
Raymond Price
  • Messing around with Git. You don't need a lot of heavy wizardry, like doing an octopus merge or whatever, but the ability to do interactive rebases and cherry-pick commits is extremely useful regardless of whatever language or project you're working on.
  • Debugging. Again, there's a lot of depth, but as long as you can at least set a breakpoint and follow a bug through there, you should be good.
Collapse
 
__orderandchaos profile image
Order & Chaos Creative

Logic

Collapse
 
dance2die profile image
Sung M. Kim

Simple yet hard to master

Collapse
 
moopet profile image
Ben Sinclair

How to write a concise, informative and useful bug report.

Collapse
 
dance2die profile image
Sung M. Kim

Thanks Ben.

I wrote about creating a GitHub issue template to provide information required for a bug report.

Would requiring following info too much?

How to reproduce the error
An expected behavior
Environment such as browser, versions, and
additional (optional) contexts such as screenshots/videos.
Collapse
 
ghost profile image
Ghost

Learn how to solve problems by linking the correct solution.

After 35 years in this business the one nugget of advice I would pass on to you is this. Languages, Architectures, and Paradigms are all JUST TOOLS. Pick the right tool for the right job. Don't crumble under the pressure of evangelists (AKA fan-boys/girls) and try and make a language or technology fit the problem.

Collapse
 
dance2die profile image
Sung M. Kim

Thanks Mike.

Pick the right tool for the right job
I believe ๐Ÿ‘† sums it up ๐Ÿ˜Ž

Collapse
 
tadman profile image
Scott Tadman

There's a few things that are important in construction projects, especially as applied to software:

  • Knowing what's easy, what's difficult, and what's possible.
  • Estimating how long something will take, and how much it will cost.
  • Setting priorities, knowing what's important, what's secondary, and what's a distraction.
  • Anticipating failures and having back-up plans.
  • Working within given constraints to achieve the best outcome.
Collapse
 
dance2die profile image
Sung M. Kim

Thanks Scott.

First two looks like it'll work for build vs. buy problem.

Collapse
 
okolbay profile image
andrew

clean code and clean architecture

Collapse
 
alainvanhout profile image
Alain Van Hout

Maintainability, practicality and business sense. All the rest tends to be details.

Collapse
 
josegonz321 profile image
Jose Gonzalez • Edited

Mandatory

  • Listening
  • Communicating clearly
  • Ego check
  • Empathy
  • Remembering that you are not your code

Techs

  • CRUD
  • N-Tier architecture
  • High Order Functions (.map, .filter, .reduce)
  • Know how to google a question (dead serious)
  • Have friends who are experts in specific topics so you can ask them questions (and also pay back by helping them)
Collapse
 
dance2die profile image
Sung M. Kim

It seems the good soft skills is a must as you and others have pointed out.

High Order Functions (.map, .filter, .reduce)

Would it make sense to go more abstract and learn all Functional Programming (FP) concepts?

Know how to google a question (dead serious)
I got an idea on how from Shawn Wang (How to Google Your Errors)

Collapse
 
josegonz321 profile image
Jose Gonzalez

Hey Sung,

Soft Skills

I'm hesitant to call them "soft skills" because it makes them sound they aren't important to our job.

Lately, I've taken those skills to the next level, and great results.

If you can combine your tech skills with people skills, I think that makes you an unicorn. (You know that super awesome dev who is likeable and always be willing to help with a smile, yeah, that's who I am talking about).

HoF

I said because we are always doing list manipulation of some sort:

  • A list of items (data retrieval)
  • I want to create a new list of items from those items (map)
  • I want a subset of that list of items (filter)
  • I want to find the total price of those items (reduce?)

But for-loops can do the same? You may be thinking. And you are 100% correct, but HoF make def life much easier :)

Thread Thread
 
dance2die profile image
Sung M. Kim

Thank you for the explanations, Jose.

You know that super awesome dev who is likeable and always be willing to help with a smile, yeah, that's who I am talking about

When I imagine the situation, I can see value of "people skill".

Regarding HoF, I've been writing a series of blog posts (Sorry for the Shamless plug ๐Ÿ˜œ) on implementing C#'s LINQ methods in JavaScript.
I now know that it hasn't been in vein โ˜บ๏ธ

Collapse
 
therufa profile image
Attila Max Ruf
  • anger management
  • being able to work without frameworks so you don't rely on them, but use them as a basis for your ideas
  • basic understanding of patterns and principles. i think this is extremely important. not just knowing, but understanding the motivation behind a pattern's existence and the foundation of them. this makes code appear less magical
  • being able to adapt fast to changes like B.O.R.G.
  • don't be picky. every environment has its beauty once you get to understand it.