As a Developer you need these 5 hardcore skills

LORY
5 min readFeb 27, 2022

--

After 13 years of coding i found these are most important skillset for every developer .

We talk about developer softskills , in this article i also want to highlight some hardcore skills as well, they are just as important as soft ones.

Programming (not just Coding)

We write code . because we love it.

Programming is much more than use some library to make it works .

There is a difference between build it and write code. they are different mindset .the “build it mindset” has more focus on how data is being structured and piece them into picture.

Coding is more focus make certain piece of code working , try different libraries, debugging until it work .coding is also important part of programming, but itself is only a very small part of programming .

To master programming need much more than use some programming language and libraries to debug and make it run. It need dev to have a good understanding of common data structure and algorithms and use them effectively, and coorperate data structure into design, and understand how data supposed to be stored in database to be read/write effectively ,also what and when to (invalid) cache , and how data flows between servers. in many cases, we also need to think about how to make the design scalable without code change.

Commandline ninja

Mastering script (shell and powershell) is always good add-on skillset to developer , it’s just make you productive. other than knowing the common commands like top, grep, cat, less, ls, cd, du, df . sometimes it’s helpful to use sed or awk to quickly process the text result from pipe; vim is a must ,we do not have to love it or use it for daily coding, but in many cases when you remote to servers to change some config or add logs , vim is the only option to go ;if on windows server ,powershell could help you to manage AD, log management, database connection checking, or write script to check and monitor server health or send mail , or generate testing data. command line script is important to every dev.

Database guru

In our dev work often need connect to database to do CRUD. very often we are checking slow query for sql or noSQL, or lock timeout or some slow write; whether it is distributed environment or single node, the knowledge to understand each data type , how index work in different database engines , and why fragment can affect the performance, why isolation levels matters, transaction size, and how to read the result from explain query , all could help us write better queries. instead of leaving all the work to ORM (in fact ,most of complex queries are generated very badly; simple ones ok), we could also optimize the queries ourselves for such case ; how nullable affect search performance and so on .

Database knowledge is worth to spend time to understand well, it is more than just use db connector to perform read/write .

Documentation is a skillset

We are developers . code is our language , but more often if every time we have to look into code to find the information or answer questions from some non-tech person, it will not be productive . While coding ,Keep ask yourself : what information need to be documented well to help others to understand the system better. it is an important skillset for any dev to be able to explain how certain module is working clearly, without showing any code.

Study template

Technologies changes rapidly. Architecture styles : client-server , web-server, plugin and modular design, monolic, micro service ;programming languages :C ,C++, Java, C#, Python, Php …; cloud : PAAS, SAAS, IAAS, azure, AWS, google cloud, heroku etc; containers: docker, kubernetes; database : SQL, document DB, graph DB; pubsub : rabbitMQ, kafka, rocketMQ; cache: redis, memcache; front-end : knockoutJS, angularJS,reactJS, .. there are lot more and more.. the list keep growing. we need a study template to get into the new thing quickly.

When something new coming in , I ask myself 5 questions:

  • What is it .what problem it is trying to solve ?
  • Research. build a sample to try it out and find out the pros and cons. for cons is there any solution ?
  • Why. is there any existing technology similar? if yes what is the advantage to learn and use this new thing ?
  • Know deeper. How to learn it completely and master it ?
  • Keep building things and have fun. what else app i can use it to build ?

Use Python programming language as an example .

What problem it is trying to solve ? it is another dynamic language ,the syntax is very close to english so improved a lot the code readability; there are large number of growing open source communities support and it can use it to build almost any app (including data science) except mobile .

Try it out to find pros and cons ? pros : the dev process is smooth (either use flask or fastapi, numpy and panda also nice except panda bit slow) ,very easy to start , django is monolic design and heavy but flask is plugin based design. cons: GIL make threading slow , for some cases, could replace it by using multiprocessing .

Is there any existing technology similar?

NodeJS and Php both can build web app also both dynamic language . Php laveral is slower than flask, nodeJS is single threaded (though it is still fast) and enforced async caused deep nested callback chain result in higher mainteinace cost, but it is still good choice when team choose to use javascript as fullstack to do both front-end and backend.

How to learn it completely to master it ?

Use Leetcode to practice the syntax and data structures ; find some books or website to get into the details .

What else app i can use it to build to have fun ?

Build some webapps like todo or task manager or trello clone; use numpy ,panda, sciketlearn, pytorch or tensorflow try start some datascience app; webrtc build videotalk app; video analysis using openCV ;face_recognition is a simple powerful library for FR app;it also has great math support .

Now I am using this template to learn golang .

That’s it , Hope it helps .

Thanks for reading !

--

--

LORY
LORY

Written by LORY

A channel which focusing on developer growth and self improvement

No responses yet