4 ms·
Here are some suggestions. - Designing Data Driven Applications - Kleppmann - The Art of Unix Programming - Raymond - Pretty much any of the programming book
by abernard1 5y ago
Here are some suggestions.
- Designing Data Driven Applications - Kleppmann
- The Art of Unix Programming - Raymond
- Pretty much any of the programming books published by No Starch Press
And more pieces of advice.
1) Learn SQL. I mean really, really learn SQL. And then learn the basics of how relational databases work. I'd recommend Postgres for the dialect because of its quality and maturity.
2) Absorb everything you possibly can by Rich Hickey and Stu Halloway. "Simple Made Easy" is a talk that you can watch dozens of times over a decade (I have) and still come away with new insights at different levels of experience. The Clojure community has very mature engineers and they work on extremely hard problems. They're concerned with fundamentals.
3) https://www.ribbonfarm.com/2013/07/10/you-are-not-an-artisan/ https://www.ribbonfarm.com/2013/07/10/you-are-not-an-artisan...
4) You're going to learn most by immersion in an ecosystem, and the best way to learn is to find a job at a solid tech organization. It doesn't have to be a FAANG (and probably shouldn't be honestly), but find practitioners working on problems you like and show up to help. There is no shame in having entry level grunt work on unglamorous projects: you will learn the most on messy projects other people do not want to work on.
5) Do the work. I've worked in software for 20+ years and my first job was in a tiny cube making $5.15 an hour and I retired a year ago. It's popular to talk about work+life balance and lots of creature comforts, but the truth is hard work and forcing yourself to constantly solve harder problems (depth) and learn more languages/techniques/practices (breadth) is what you need. There is no substitute to persistence and pushing yourself to accomplish harder things. Have pride in your work and humility in what you do not know, which for all of us is quite a lot :-)
- markus_zhang 5y agoSolid recommendations from someone who has been in the trench for a long time, thanks!
- creamytaco 5y ago> - Designing Data Driven Applications - Kleppmann OK > - The Art of Unix Programming - Raymond Waste of time > Pretty much any of the programming books published by No Starch Press Waste of time (mostly) > 1) Learn SQL OK > 2) Absorb everything you possibly can by Rich Hickey and Stu Halloway. "Simple Made Easy" Disagree. The Clojure ecosystem is a silo and a lot of their edicts do not translate. > ribbonfarm Waste of time, besides being able to write thousands of words about absolutely nothing, vgr is now pushing web3 / metaverse / cryptos. Charlatan. > You're going to learn most by immersion in an ecosystem Wrong. You're going to learn most surrounded by people better than you. Find those people and teams and go work with them. Background: Worked on multiple FAANGs, including Google and Amazon, also fintech, now retired.
- abernard1 5y ago> Background: Worked on multiple FAANGs, including Google and Amazon, also fintech, now retired. To the poster: this is why you don't want to work at FAANGs. There's no world where you can be excellent and simultaneously be this much of an entitled dick. That world is one of pioneers who have paved the way for the pretenders who live in it now. If you want to be actually good at your job, you'll need to choose whether you want to know something or know someone. Money may or may not show up, but don't go chasing money if you want to build something worthwhile.