DEV Community

Cover image for To Be A Great Programmer: Mindset And Learning Strategy

To Be A Great Programmer: Mindset And Learning Strategy

Nic on December 31, 2019

Preface Software is continually eating the world, programming is a required skill for many people in the future. Programming also conta...
Collapse
 
phasedephase profile image
phasedephase

You are so wrong on so many levels it is scary. Where to begin? Let's see, you wrote: 'A programmer who loves programming does not feel boring even with too much time spent on the keyboard, on the opposite, he will be enjoyable and satisfied.'

This sentence alone is total horsesh*t. I love programming. But if I do too much of it, I start hating it, just as much as anything else that I do too much. It's not about how much one can do in one day, it's about balance between work and life, and if your work requires so much effort and energy and time that you only have time left to sleep and eat, then this is no life, it is a slave's nightmare!

The fact that I love programming, does that mean I love to spend most of my waking hours at work? Does that mean I love making the company owner(s) rich with my sweat and toil and in return get a salary that will not even allow me to retire comfortably? Does that mean just because I can bring my dog to work, or telecommute, or have a fridge stacked with all sorts of drinks paid for by the company that it justifies selling my free time in exchange for a salary?

The answer is a resounding NO!

Instead of trying to make IT work look like something it is not, you'd better be truthful about it:

  • the 80/20 rule: unless you start and own your own project, ie get hired to work on an already existent codebase, you will spend 80% reading and fixing code someone else wrote--so many companies stared with the wrong tech that now has become legacy, and you can't decide to rewrite all the shitty node.JS or Ruby code in Elixir--and it's one of the worst way to spend one's day. So boring! And 20% writing your own code, if you are lucky.
  • you spent years of your life studying CS and it still isn't enough; now you need to study more just to get expensive certifications; and when you are done with that, the cycle begins all over again to get re-certified because tech has changed; so not only most of your day is spent at work, but now you also have to take time away from your own private life, family and friends, to study even more so you can pass the certification exams; and even if you do, it does not guarantee you a job if you don't already have the experience the employer is looking for!
  • And how long do you think you can sustain this level of pressure and learning? Do you think when you are in your 50s you will still be able to do it? With a regular IT job, I can guarantee you that you will still be working IT in your 50s and not be able to retire. And then what happens when a new tech comes out and makes your skills obsolete and you need to study something new and totally different or you are out of a job? Will you be able to do it well enough? Example: quantum programming. You won't be using JS or Java or Go to code for quantum computers.
  • Employers are not stupid: instead of spending the money necessary to train their future employees, they let the fools spend their own money on training and study material, and everyone thinks this is great. how insane are you people to believe this? you are selling your time just for a job! it is not the employer doing you a favor, it is you giving a favor to the employer. too many workers seem to forget this basic reality and this article is just perpetuating the delusion;
  • finally, you do not live to work, but work to live well, hopefully. you work to get the money you need to make your life and your family's life better, not to make your employer happier. therefore, to maximize this goal, you should ask yourself:what is the best job that can match my interests with enough yearly income so that me and my family can be financially secure as soon as possible and not require lifelong sacrifice and toil and endless learning just to keep your job because one stupid and badly designed tech (Javasript) gets replaced by another tech?

The answer is work in finance, quantitative finance/analysis for a hedge fund (experts in AI get paid >= $1M/yr), or start your own business and be the owner to whom all the rewards come. Anything else is just a slave's life, beholden to someone else's desires and vision.

And that is exactly why I quit Silicon Valley and all the nonsense and delusions that came with it. I am my own boss now, make more money than any stupid tech job would have paid me, and get to code what I want, when I want, using the tech I love, not what some dumbass manager thinks I should be using. And that, my friend, is the beginning of freedom, ie self-responsility.

Collapse
 
daniel13rady profile image
Daniel Brady

@phasedephase I think you make some good points, but you should consider refactoring the tone of voice you used to present them: the current state comes off more like a complaint of your own experience than a helpful critique of the OP's thoughts, and so may not have the impact or interpretation you hoped for.

These are my takeaways from your reply: are they accurate?

  • Programming may be your only love in life, but it doesn't have to be: you might enjoy spending your time and energy in other ways, too, and that's okay. "Variety is the spice of life," as they say.

  • Burnout is real, but you don't have to accept it. If you start to feel a slave to your employer, leave: IT is an industry with opportunities everywhere.

  • IT is a choice to dedicate your life (not just your work) to continuous improvement and learning. The industry and technology landscape is constantly changing, and the pace of change can be dizzying: you don't have to keep up (that's impossible) but you can't expect to thrive by staying still.

  • If for you "retiring" means "ceasing to work," IT may be the wrong choice to make, as there are very few paths to that goal. In this space, the goal is not to eventually stop working, but rather to reach a point in life where working is optional and on your own terms.

  • Avoid employers who are not willing to compensate you for learning what you need to do the job they're paying you to do: spending your money and free time on professional development should be a choice, not a necessity.

  • Always be asking yourself, "Am I in rich soil?" Not all companies provide good-enough environments to satisfy your needs as a person. Optimize for your values, and no one else's: if life after work is important to you, find your balance.

Collapse
 
phasedephase profile image
phasedephase

Point taken. Reading the article made me angry by reminding me of so many things that need fixing with our society (was listening to NPR yesterday and there was a report on this retired lady in Detroit who worked since she was 18, who only gets $1,200 in social security, and now lost her home because of some bureaucratic BS... man, I was thinking, you work your whole life and this is what you get in the end? Now that's messed up.)... anyway, hence the tone as the article was reminding me of so many other related social situations.

But yeah, you got most of the points alright, although the gist, without going on a rant ;) is this:

  • the demands put on the IT workforce are excessive and there seems to be a cottage industry out there trying to normalize that state of affairs as if acceptance were THE solution or even in the best interest of the workforce (everyone please watch the movie In Time, if you haven't--it explores the themes evoked by the article and ensuing discussion);

  • we should remember that we work to live, and not live to work, at least this is the sane worldview in my book (ok, granted, a workaholic will see it the opposite way); so, it's not so much about the fact that life after work is important, it's more about not sacrificing most of one's time to work related activities, because in the end, it's about freedom to do as one pleases with one's time, and one isn't free if one's life is set to another's schedule and demands (hence the whole 'slave' metaphor);

  • and IT works isn't all that it's cracked up to be, so i took issue with what i still consider too much of an upbeat tone of voice in the article: it's one thing to be passionate about your FOSS pet project you commit every night to github, and another altogether working for some corporation where you end up reading and maintaining a codebase 80% of the time, and working on something more creative that you truly enjoy only 20% of the time, to use the cliche example about the corporate life we all heard about (ofc startup life or working at Google changes the parameters but TL;DW now applies); so to keep studying and practicing for that kind of a job makes very little sense to me since it takes time away from other things more important in life.

  • and in a clumsy way, I was also trying to remind the reader that unfortunately we live in an economic system still rife with discrimination (in IT, ageism) and thus the whole 'retiring' thing was not meant to mean 'cease to work' but being able to do whatever one wants and not have to fear for one's survival once the company does not exist anymore, or after they laid you off because anyone > 30 is too old in the IT world and should be replaced (I paraphrase the Zuck's famous quip); and this requires attaining financial freedom, hence hopefully matching passion with an activity where the $ is (but if you don't like AI or hedge funds, then that's not the way ofc), which a regular job is very unlikely to provide enough of, and so, in the spirit of the article, one needs to keep learning... but how much will you be able to or willing to learn once past 50? (hence the quantum computing example).

Speaking of working, I worked too much these past couple days. Man, am tired, so apologies for the less than stellar prose. I'll give it a rest now. Just hope millenials will see what's really important, and it ain't work! Unless it's in the service of humankind and the biosphere, but that's another discussion.

Collapse
 
snj profile image
Nic • Edited

@phasedephase

I was thinking, maybe it's because of my not so well English writing skills delivered the wrong messages. Since English is not my first language.

But I finally got the reason is we have a different value system.

Let me explain it:

'A programmer who loves programming does not feel boring even with too much time spent on the keyboard, on the opposite, he will be enjoyable and satisfied.'

The meaning I want to express is: If some people get huge interests in one thing, they don't care to spend too much time and energy on it. I saw some great programmer build an OS from scratch, they coding more than 10 hours a day, feel not tired. Why? It's just because they love it, they want to know the details of creating an OS, they don't consider what the value of recreating a new OS(without any actual user). No one forces them to do so, it's all the choices of themselves.

Maybe I need a more accurate expression in my post about this.

Yes, the balance between work and life is important, I also wrote some about this at the end of this post.

As for your following points, please note this, my subject of this post is not: "To be a RICH programmer: The mindset and learning Strategy".

What's you are talking about is a totally different subject.

Why some great programmers still working for companies?
Maybe they just love the job, and their skills of IT are their strength, and their jobs already make enough money for life.

Please note, not everyone has all the skills, ability, determination to be a founder of some startup or business. Building a successful startup also need some luck, you know 99% startups die.

Even someone doesn't have any interest in AI, but it's getting a well paid these days, should he move to this field and try to be a so-called expert in AI?

No, I don't think it's the right choice for everyone. I think it's better to follow the heart, try to create value for the others and wealth will follow.

If you think getting rich will be the only freedom for you(working for companies is just a slave's life), go to pursue it, try to get rich. It's your choice, we can not say it's wrong or right.

Btw, be a programmer is not the only way to get rich, even not the best way.

@dabrady have a good explanation, thanks.

PS: The Moon and Sixpence, by W. Somerset Maugham is a awesome book!

Collapse
 
phasedephase profile image
phasedephase

OK I get it. If you have that kind of passion for something, then yes, you won't feel bored or tired until you collapse from exhaustion. I remember the days when I used to code 24 hours straight before passing out. Anyway, that was some crazy time. But this level of intensity is OK if you do it for your own company, not the company of someone else who doesn't care about you and your family. That's what I was trying to say.

And also clumsily, trying to say that the goal is to be free, and free in this society where we depend on a company for a paycheck, means financial freedom. So the goal is not necessarily to become rich, but to make enough so that you do not need to depend on an employer or boss and not need to fear of being let go because you don't want to or can't learn the latest language or framework--I am writing this with the following in mind: if it's something cool, then no problem, but OMG, if I had to learn Javascript and JQuery, I'd shoot myself.

And before anyone starts telling me how wonderful JS is, this guy, Kenneth Eng, explains much better than I ever will: medium.com/@richardeng .

But to go back to your point: I guess I am taking issue with what you wrote because to me it appears you are advocating self-sacrifice for something that is not worth it, not at the levels you mention, because as you say, it is not the best way to get rich, if that were the goal, and it certainly is also not the best way to be able to save enough money to get out of the race financially secure 20 years later, unless as in my examples, you work a job that pays you what is called f*ck-you-money.

If on the other hand, you have a vision and are so passionate about it that you will commit everything to it, just as in the case of Jobs or Gates, then yes, I have no problem with that.

But busting my ass for years and 20 years later struggling (because now you are older and you have to fight the age bias at all the Silicon Valley startups you apply to, the guy interviewing you probably is even at least 20 years younger than you!) to find another job because either the company doesn't exist anymore, or they promoted you to a managerial position when all you want to do really is coding and you quit because you can't see yourself live like this for the rest of your life, and you still don't have enough money saved to retire--retire as in escape the grind and be able to work on your own stuff when and where you please--then that is what I call insanity.

Unfortunately, like you said, it is not given to everyone to find a way out. But I believe, this is the higher goal that will enable you to dedicate all your energy and passion to some higher cause, just as Bill Gates does (but am not saying it means you need to join the 3 comma club, although it would not hurt ;) )

Anyway, nuff said, I think we get the gist now.

Collapse
 
misosooup profile image
Misosooup

Totally. Been in the industry for 15 years. 80/20 is so true. Unless you really get put into a team with good developers (which are hard to find) you end up reading sh*t code every day. It eats up the brain cell so much that you feel frustrated every day. It's really exhausting. Being a really passionate developer in the past to where I am now, it's really a shame to say that I'm no longer passionate.

Finance industry is probably by far the best industry to retire safely. Developers probably 10 to 20 years. You won't be passionate by that time. You will have other commitments. People don't see us developers as gurus or Saints. They see us as machines who just loves to talk to computers.

Collapse
 
daniel13rady profile image
Daniel Brady • Edited

It eats up the brain cell so much that you feel frustrated every day. It's really exhausting. Being a really passionate developer in the past to where I am now, it's really a shame to say that I'm no longer passionate.

I can wholeheartedly relate to this sentiment.

My 2019 has been a pretty sh*t year in that regard: I started the year in a great environment on a team with three fantastic people were also good developers that were passionate about improving the quality of our code and the product it was being sold as. I was in good soil, and was excited to solve problems with them.

But churn happened, and over the year, in addition to the impact of business health issues, those other engineers left my team, and I ended the year in this pretty passionless state, exhausted from trying so hard to maintain the same level of value production when I no longer cared. I definitely need to make some changes to my trajectory in 2020. 💪

Finance industry is probably by far the best industry to retire safely.

This seems to echo a bit of @phasedephase 's thoughts. Can you elaborate on why financial tech stands out so much, and what "retiring safely" means to you?

Thread Thread
 
phasedephase profile image
phasedephase

fintech stands out because the salaries are stratospheric, although AI jobs now command even higher paychecks (talking 7 figures here). Used to be only the best of the best financial traders would make 7 figures.

by 'retiring safely' i only meant that one never knows when the next financial downturn will hit like in 2008, when the mass layoffs will start... so (1) it'd be good to have enough to weather such an event comfortably and (2) therefore have accumulated enough wealth before a major economic meltdown so that one won't have to depend on an employer to put food on the table and truly be free to decide what to do with one's time.

if you haven't already, watch the movie In Time. a great summary of what i was driving at so clumsily.

atvb

Collapse
 
phasedephase profile image
phasedephase

Amen. Reading this brings back some nightmarish memories ;)
atvb

Collapse
 
abhilashc1981 profile image
abhilashc1981

There are too many grammatical errors in the article to read it, even though the material maybe good. The author would do well to address this to get more readership.

Collapse
 
snj profile image
Nic

Thanks for your feedback!

English is not my first language, I am practicing with it by blogging.
As for the spelling errors, I tried to use Grammarly to check it, but errors still can not be avoided, native readers will find some obvious ones.

Could you give me advice on improving English writing?

Collapse
 
phasedephase profile image
phasedephase

for sure, but hey! if english is not his first language... we should cut him so slack.

Collapse
 
hrtummala profile image
Hemanth

As with most professions and sports etc there will be natural programmers who have that natural flair and ability to create new things. For the majority of the rest it is all about having that sense of purpose..asking constantly what can be done in this new programming language differently or efficiently than the one you already know.

Collapse
 
__kaushiksarkar profile image
Kaushik Sarkar

Thanks for writing this detailed and informative blog for all programmer.. experienced as well as newbee.

Collapse
 
faisalnazir033 profile image
faisal nazir

Really its very amazing and helpfull articl. I enjoy to read it. Thanks for sharing your ecperience.