Write a book for Packt on X you are learning as you go => Leading expert in X and charge 100USD/hour
Write a bunch of blog spam on X, a lot of it wrong => Leading expert in X and charge 100USD/hour
Create a bunch of projects that have more bugs than Swiss cheese has holes => Leading expert in X and charge 100USD/hour
There is a story today here that says GitHub is the Instagram of programming, and more and more I agree. Technical knowledge has been trumped by marketing. You are only someone if you have a blog/github profile/stackoverflow with more than 1M+ points.
And then people wonder why software is so shitty now days, why a todo list in React makes any laptop run out of battery in 50 minutes (not attacking React, just how beginners use it).
There is so much cargo culting nowadays in software development (agile, GitHub, white board interviews, hacker rank, tdd, add, ci, cd, redux, etc etc) and so many new people (< 5 years) without experience to see what works and doesn't work with the team and project that is hard to fight it.
I worked in 3 different React projects in the last 2 years with 3 different teams. Only one required something as complex as Redux (and most likely Flux or other simpler state libraries would do). You know what? All of them had redux. It is what they learned in the latest blog post by ReactHipsterMainMain.com so that is what you see.
If you are 25/28 years old and a start up CTO (?!?) and you spent your 20s in university and doing open source code and putting shit in GitHub, you value that and try to hire for that. Thus, this is well known and bootcamps and the likes teach people to put every little shit in GitHub to show they are 'passionate' about software development and has done a lot of projects.
Even the take home projects. From experience, most companies have the same variation of the project. For iOS this is usually show a screen with data from an API, tap something and show details, also from an API. You can find millions of these small projects all over GitHub. But somehow they still ask for them. A few years ago I was so tired of this that I created a generic project and then a script that would take a JSON file and would generate the Swift Models, as well as API calls->transform to Model, and I would just need to create 2-3 functions to configure each cell depending on the data. I haven't seen any junior developers do something like this in their jobs. There are more and more classes, view controllers, components, stores etc. The abstraction thinking just isn't there yet. But they act like they know everything and have all the answers because of GitHub stars or whatever they are called.
I am all over the place with this reply, I am sorry. Just after years and years of seeing this, more and more I don't think soft development is for me if it is just to become the Instagram of the geeks.
https://redux.js.org/faq/general#when-should-i-use-redux
https://medium.com/@dan_abramov/you-might-not-need-redux-be4...
Unfortunately it falls on deaf ears and it is still overused pretty much everywhere.
I basically deal with it by being super open about it (it's pretty much the first thing anyone knows about me) and letting people decide if they still want to read me or not. enough do. in a free market, that's plenty.
so the question then becomes: what confidence do I have in what I think I know? it comes from 3 places:
- Empirical foundation: study and read others. this book has 1419 external links and quotes to advice from people way more credible and established than me. I provide curation and context.
- Theoretical foundation: I do my best to ensure what i see in real life is backed up by indisputable logical/psychological axioms. This is important for replicability.
- Personal Experience: I apply what I learn to myself.
Every weakness can be a strength (funny enough, i spend a whole chapter talking about this). In my case, i've basically made a career out of putting out what i learn as i learn it, before i'm an expert, with the responsible disclaimer that I am not an expert but I do put a ton of work into thinking and research. it's the opposite of "fake it til you make it", its being real that you havent made it yet but you do not let that stop you trying. I am at the exact point where my voice and perspective on things (being a recent beginner) let me explain things to beginners in ways that experts can't.
Yes it's uncomfortable af. But you see tremendous growth when you are both intellectually honest and doggedly persistent at this.
As I wrote this book I was also overcome with this personal insight - me 5 years from now would probably not pick this book to write. I would be interested in different things, different challenges. This is pretty much the only time I would ever write a junior-dev-to-senior-dev book: right after having done it.
I suspect this is why so few junior-dev-to-senior-dev books exist - people wait too long, and then by the time they feel qualified to write a book, they care more about management or architecture or what have you.
short answer: no i don't feel very qualified right now. i do intend to update this for a few years. how long until i am qualified? we shall see.
EDIT: I would like to note that the IMHO most mentally and technically difficult part of a developer career is maintaining the same mission-critical legacy codebase for years at a time. That's not something I really expect to get a lot of insight around from this book and your personal experience, but I'm also not sure what exactly advice around that problem would look like (probably just the tried-and-true military motto of "embrace the suck"). Either way, just my 2 cents about coding careers.
agreed on the maintaining legacy bit. I spent some time on that in the sr dev chapter, but it was mostly collating what others have said. i think its impt that jr devs be aware this is a big part of the job, and also that "technical debt" often pays incredibly well because it is so challenging and the skillset to handle it well is so rare.
I still have the feeling that there is a bit of greed here, trying to find shortcuts, this is not blatantly wrong but I have the intuition that this is a potentially harmful mindset, not unlike the Move Fast and Break Things mindset.
Stuff like reading books, training frequently, exposure to Machiavellian strategies, perennial interview practice, side projects etc is already known to most programmers who are aware and actively seeking improvement.
One thing that I like to see most programmers pay importance to in the future is physical fitness and rest. Mental health would also be a good topic to add. We are a profession where every one wants to win spectacularly or die trying. Or we just over eat and sit our excercise-less bodies to death.
A comprehensive programmer nerd's guide to exercise, rest and mental health would be something I'd be interested in reading.
[edit] Rearranged some words for clarity
And he’s fresh enough that his advice isn’t enbittered and grizzled yet.
I quickly checked his writings. I am not trying to put him down, they are ok, but completely different than what I would expect an expert/authority to write. But seems nowadays 50+ tweets a day and 4 blog posts a day are more important than actually, you know, writing good maintainable code.
And this book is aimed at beginners, not folks like us with decades in the field.
But it doesn't matter if it is react or iOS or prolog. If you think about it, a CS degree, that covers a lot of topics, is minimum 3/4 years. And when you get out of uni you are considered an intern/junior. But now, bootcamps/web tutorials, people think that ater 2 years they become an authority on something.
I deal with these people everyday. They know 'react' inside out, but anything higher level (how to organize the freaking code) or how to use any kind of CS algo to solve a problem that isn't in the O(n^n) space because it is 'simple' is beyond them. Which is fine, is something that takes time to learn and know how to use. It took me years.
But 'I'm a senior developer' types with 2 years of experience is ridiculous, and we should call them what they are, liars. (not the GP, again, don't know him, talking in general)
(I don't think a CS degree is needed to be a software developer)
Who’s better for that advice? Someone who did it in 2 years or someone who took 10?
It matters because right now, we may have a coming recession where all these 'seniors' will see themselves fucked because companies will have more options and these 'seniors' will be too stuck up to realize they should be taking a more junior-ish position.
It also matters because I deal with these people all day, that because they read the latest blog post on something think they are experts and sidetrack 15 minute meetings to dribble on that we are doing it wrong and waste an hour of my time.
I've seen him go from someone who didn't know anything about web dev at all, to a master of what's going on with React and its ecosystem. He's added expertise on Svelte and other tools as well.
Shawn excels at a lot of "big picture analysis" type thinking (which makes sense given his prior financial background), and I always find his comments and presentations insightful and highly informative.
I haven't yet had time to read through this new book due to my own tasks, but based on the blog posts I've seen him write leading up to this, and the preview material he's tweeted, I have full confidence that this book is going to be an excellent resource for other developers.
As for the price, Shawn's clearly put a lot of time and effort into writing this. If you have questions about his ability to do so and the likely quality, I'd encourage you to read through some of his blog posts to get a sense of how he writes:
To me, it's not about the $40; it's about advice on "the full journey from Code Newbie to Senior Developer" from someone who is probably much closer to the former than the latter.
Well, absolutely nothing, and it's a shame to see people (I have to imagine mostly college interns and fresh grads who already fancy themselves as "mid-level" developers) waste money on this nonsense.
Unfortunately this is what happens when you see job advertisements requiring "Senior Developers" and specifying 5 years of total work experience. In no other industry can you be a 27 year old and be anything other than junior-to-mid. I say this as someone who was a senior developer in my late 20's, and you don't know anything in your late 20's.
But I suppose if you're a senior developer after a couple years, what's to say you can't advise people on their careers when you haven't even made it through a Presidential election?
Now the question is, investing those few days total saves you more worries. And doesn't derail you. That's hard to evaluate, and I don't attempt to. But for information, $40 is cheap.