Ask HN: How does one become a better Software Engineer?
Assume the individual wishes to build products and the underlying systems atop the web and would strive to be "Fullstack" and dangerous throughout the entire stack.
Feel free to share resources, tips, lessons learned, etc.
18 comments
[ 3.3 ms ] story [ 44.1 ms ] threadFalse, in two ways. Truly amazing software do get conceived by an individual. Linux has many flaws.
Who cares if you can make a website with early 90s browsers. That's a skill that is obsolete. It might be fun but it doesn't make you a better engineer.
- A reply I wrote to a thread here at https://news.ycombinator.com/item?id=25025253
- A Twitter thread about a few things useful for selling software to companies, discovering patterns, abstracting into a product https://twitter.com/jugurthahadjar/status/131066829330549965...
- Added link: https://news.ycombinator.com/item?id=25288605
<<<
Hi, here are a few things I wrote in here that could be useful. They are designed to improve remembering to do things, doing things, learn from doing things, make sure everyone knows what they should be doing, remember why we're/if we ought to be doing things in the first place, and doing the right things:
- https://news.ycombinator.com/item?id=19924100 (understanding codebases, etc.)
- https://news.ycombinator.com/item?id=22873103 (making the most out of meetings, leveraging your presence)
- https://news.ycombinator.com/item?id=22827841 (product development)
- https://news.ycombinator.com/item?id=20356222 (giving a damn)
- https://news.ycombinator.com/item?id=25008223 (If I disappear, what will happen)
- https://news.ycombinator.com/item?id=24972611 (about consulting and clients, but you can abstract that as "stakeholders", and understanding the problem your "client", who can be your manager, has.)
- https://news.ycombinator.com/item?id=24209518 (on taking notes. When you're told something, or receive a remark, make sure to make a note and learn from it whether it's a mistake, or a colleague showing you something useful, or a task you must accomplish.. don't be told things twice or worse. Be on the ball and reliable).
- https://news.ycombinator.com/item?id=24503365 (product, architecture, and impact on the team)
- https://news.ycombinator.com/item?id=22860716 (onboarding new hires to a codebase, what if it were you, improve code)
- https://news.ycombinator.com/item?id=22710623 (being efficient learning from video, hacks. Subsequent reply: https://news.ycombinator.com/item?id=22723586)
- https://news.ycombinator.com/item?id=21598632 (communication with the team, and subsequent reply: https://news.ycombinator.com/item?id=21614372)
- https://news.ycombinator.com/item?id=21427886 (templat...
Slowly building a set of problems you have solved is experience. As you encounter similar/same problems, iterating on those solutions makes you a better engineer. Solving those problems with increasing levels of traffic introduces/uncovers new problems to solve across the stack.
Learn from others, co-workers or other companies that publish things about the problems they have solved. Some of the BigTech companies generate frameworks or have services that solve BigTech problems they have encountered. There are solutions there that could be useful. There also are problems + solutions there that no other company is going to run into but people like to emulate so they will use those solutions like a square peg in a round hole.
Oh, and build something small in scope. You don't want to be working on the pre-launch 10 years from now...
Second thing - constantly improve communication. Be as humble as You possibly can, because people have their own struggles we are not aware of, and those affect the way they write and speak. That's why You need to remind your self everyday - "is this what I understood really the thing the person has said?". And ask for their understanding of given information. It's basically 70 to 80% work of good SE.
Finally, take care of your physical and mental health. You cannot be productive 24/7. Your body and mind need breaks and maintenance. Treat yourself in this aspect as any other high-grade, professional, top-quality tool. Your mind, your body are your tools - take care of them, so they can perform for life.
Oh! And be nice to yourself. Harsh treating You will most likely get from others. If You don't be kind to yourself, who will be?