5 ms·
Unpopular opinion, but chase old things, not new ones. The big investment in your career will be ideas that stand the test of time. Relational Databases, data
by softwaredoug 5y ago
Unpopular opinion, but chase old things, not new ones.
The big investment in your career will be ideas that stand the test of time. Relational Databases, data structures, programming paradigms, math, etc. Even in machine learning, just knowing core statistics and regression is more important than HottestNewArchitecture :TM:.
Learn the ideas underneath these ideas, and you'll really grow and be able to better evaluate / learn new ideas.
- dmos62 5y agoWhen you say relational databases, do you mean SQL databases in particular?
- majewsky 5y agoNot OP, but I'm going to answer "yes" from my own personal perspective. As a backend developer in a team mostly comprised of other backend developers, I'm constantly surprised by how much the average developer fears dropping down into SQL (as opposed to working in whatever ORM their language offers) and how much it impedes their admin work not to be able to interact with their database to find inconsistencies, pull reports and such.
- ducharmdev 5y agoThis is why I'm thankful for the experience from one job where everything was in stored procedures. Say what you will about stored procs, but they're a great way to get comfortable with SQL!
- samcgraw 5y ago> The big investment in your career will be ideas that stand the test of time. This is spot on in my experience. As I grow in my career as a software engineer, it's funny how much more often I notice that the things that set one apart in the field is a level-headed understanding of the fundamentals and a calm resolve to take into consideration what's worked in the past, much more than one's ability to "chase the shiny". Honorable mention of the Lindy Effect [1] here - one of my favorite ideas from Antifragile [2]. [1] https://en.wikipedia.org/wiki/Lindy_effect https://en.wikipedia.org/wiki/Lindy_effect [2] https://www.amazon.com/Antifragile-Things-That-Disorder-Incerto/dp/0812979680 https://www.amazon.com/Antifragile-Things-That-Disorder-Ince...
- rootsudo 5y agoSo true. For me it has become RegEx, Email, Email Servers/security, Excel, and sorting. Never thought I'd go on about it, but man. It apparently is my niche.
- xchaotic 5y agoThanks. It's the same for me, actually - I built a lot of my career around XML and other W3C standards and the great thing about those, while complicated is that you can refer to a well defined spec to see what the behaviour SHOULD be. But I'm hoping it's not either/or question - I can continue learning software architecture patterns and anti-pattern but perhaps there is some new, realtively untapped market or end-user experience where this can be leveraged.
- bawolff 5y agoI think a big part also - new ideas often dont have info on how they fail- its all hype. However old ideas do, so if you can link them, its easier to use the new technology appropriately.
- typon 5y agoWhen it comes to machine learning, yes it is important to know statistical methods, but at this point deep learning shouldn't be pejoratively referred to as the HottestNewArchitecture. If you want to solve previously unsolved problems, deep learning is necessary; and if you want more specific advice, learn how transformers work. This class of models is qualitatively different in the kinds of problems they unlock as solvable.
- softwaredoug 5y agoI don't disagree. But I think (a) Important stepwise changes in a domain are actually rarer than we think. Transformers & deep learning being one good example. (b) Focusing on the background information prepares you for that stepwise change, and recognize the stepwise change when it happens Instead of trying to suss out from the tech literatti every new thing and chase that, I'd rather spend my time on "old things" and be better prepared for the right stepwise changes. There's a lot of 'revolutionary' and 'big ideas' that in reality are marketing and/or repackaging old ideas.
- brazilian_ds 5y ago> Even in machine learning, just knowing core statistics and regression is more important than HottestNewArchitecture :TM:. Agreed! In my earlies as a data scientist, I was always looking forward to implementing deep learning and new fancy algorithms. For some real use cases, the explainability provided by a simple regression is better than a more complex algorithm that provides the best metric.
- berkes 5y agoPiling on "ideas that stand the test of time": - Architecture/patterns. Managing complexity, now and in future, is the primary thing that differentiates a "senior" from a junior IMO. Making complex stuff simple is extremely difficult. - CI/CD. Improving "shippability" and "shipfriendlyness" helps efficiency and allows getting your software to customers faster. - TDD/BDD/DDD. Ability to distill features and value from vague customer-feedback and domain-expert. Committing that in specifications, and turning that into automated, and measurable setups. the #1 skill to building software that helps your users, IMO. While there will remain a shortage of developers in near future, the absolute amount of people producing software will grow significant. The amount of software produced will grow significant while existing software will continue to be there too. The only way to stand out is to provide real value. To provide that fast. To continue providing that. And to remain able to react to the market quickly. I therefore believe that skills and techniques that allow you to move faster, be more efficient today and in future, is far more important than learning about web3, kafka, rust, go, kotlin, no-code, or the latest JS framework.
- derekp7 5y agoThis reminds me of when I took a class on Sun Cluster. The instructor went to the Sun developers for his training, took everything they "invented" and drew parallels to items he had back in his mainframe and mini days. Turns out, nothing new was invented, just re-invented.
- mamcx 5y agoSpecially when the "old things" are over-represented by things like C/C++/Shell, Unix and not Pascal/ADA, HyperCard/DBase/FoxPro (your "low-code" from the past!), Amiga, BeOS, etc A LOT of the old things were ahead of the time and forgotten. Also, a lot are still in their infancy (I think RDBMs are still too immature!). Is likely that marrying that old things with (1, at most 2) new things is the way to go.