Ask HN: Which hard skills can I learn to become a better programmer?
1–10 of 20 posts
Re: Ask HN: Which hard skills can I learn to become a better programmer?
#2* performance analysis/monitoring tools. Most developers are astoundingly bad at performance and then lie about it with weird unfounded guesses
* markdown to html parser or the opposite. Most developers have no idea the actual cost of involvement required for basic string parsing and wrongly believe it’s free
* network proxy. Aside from authentication this is mind blowingly simple. Most developers will supremely over engineer this
* API documentation. In a world where the average developer struggles to write an email actually describing inputs, purpose, and outputs clear enough for a stranger to follow can be quite the impossibility
---
That is taken from a recent comment in this thread: https://news.ycombinator.com/item?id=42157595
Re: Ask HN: Which hard skills can I learn to become a better programmer?
#3Re: Ask HN: Which hard skills can I learn to become a better programmer?
#4Re: Ask HN: Which hard skills can I learn to become a better programmer?
#5* Abstract reasoning - everything in programming is abstraction
* Critical thinking - is the first way you've thought of to solve something actually an optimal way? how could you improve it?
* Problem decomposition - solve large problems by breaking them down into smaller component problems
* Multiprocessing/multithreading and IPC - at some point one process/thread isn't enough
* Networking fundamentals - may not contribute directly to better programming per se but will for sure help with debugging/troubleshooting
Re: Ask HN: Which hard skills can I learn to become a better programmer?
#6Learn to constantly explore and be curious. Think like a hacker and the skills you need will become apparent when you try to do something and hit a wall.
Read this once a day for 7 days. You already are a better programmer.
Re: Ask HN: Which hard skills can I learn to become a better programmer?
#7Re: Ask HN: Which hard skills can I learn to become a better programmer?
#8Re: Ask HN: Which hard skills can I learn to become a better programmer?
#9Besides that learn the details about your infrastructure (what it can and can't do, datastores, networking) and your frameworks/libraries. Don't be afraid to go outside the frequently painted lines to do what's possible, not only what's been done before.
In terms of programming, it's good to learn other languages and formulations that let you think at a higher level. e.g. using map or reduce level processing or single assignment of variable values, immutable collections once constructed, etc simplifies code construction while avoiding common pitfalls like off-by-one errors, shared mutable references, or distributing a single piece of logic in different places. Pay a lot of attention to how to name things, lower level constructs should simply be what they do, higher level things go toward why they're being done. Separation of mechanism (lower implementation) and policy (higher level uses) fits naturally into structuring which is easy to work with and highly adaptable to new requirements.
Lastly don't refactor dogmatically. Choose what the factors are before redrawing the system/process along those seams. Deal with each factor once and avoid having to write, reason about, test factors in combination whenever possible.
I wouldn't consider any of these things as 'hard' (unless you meant technical), it only seems so because they are considered later (after being painted into a corner) rather than sooner.
Re: Ask HN: Which hard skills can I learn to become a better programmer?
#10Hard skills can be outsourced (Facebook hired Carmac, Google hired Norvig). Soft skills can't. Soft skills are what usually makes someone a good-programmer-in-the-sense-people-want-to-work-with-them-again. Good luck.