How to make a career in programming. Some advice.
Posted by ScholarNo5983@reddit | learnprogramming | View on Reddit | 36 comments
- There is no silver bullet that makes someone good at programming.
- There is no magical tutorial that teaches someone everything they need to know.
- To be good at programming only requires one skill. The ability to read and write code.
- Now unfortunately the field of IT is vast, and it is impossible to be good at everything. Let me repeat that point, it is impossible to be good at everything.
- To succeed, you need to pick a small section of this vast field and learn enough to at least show some basic understanding of that field. That might be as simple as mastering one of the many programming languages out there. However, if you can't achieve something as simple as that, chances are, you won't be getting that next job offer.
- So, focus on the basics, master those basics, master one or two programming languages, and next thing you know you will be well on the way to nailing that second interview.
- It really is that simple and there are no short cuts.
Pale_Height_1251@reddit
Agree except for 3. It's not about reading/writing code, it's about building software. Reading/writing code is the bare minimum, learning how to build software is the goal.
PatricePierre@reddit
Commit to open source projects. Your Github profile is your new CV
Happiest-Soul@reddit
To my fellow beginners, many seniors often recommend against this since it's usually done after you get a lot practical experience (like from a job or many larger personal projects), especially if it's something you don't use.
There do exist repos and issues that are suited for our level, if you can find them in time, but don't be surprised if you encounter "suitable for beginner" that's way out of your depth.
They say it often translates to "suitable for (experienced developer making their first jump into open-source) beginner."
.
If open-source is your main goal, however, then there are plenty of steps in this community that you can follow (over months or years of time) to becoming a regular contributor.
PatricePierre@reddit
Ok. My wording was maybe a stretch. I wanted to pinpoint the added value of contributing to open source. But I agree that it can be hard to build a strong contributor CV from day one. So good that you added some nuance.
kevin7254@reddit
That might be a plus in some places but is no way a requirement.
_Omega_007@reddit
Anyone want java dsa course for free dm.me on telegram @omegarj007
Embarrassed-Pen-2937@reddit
Number 3 is incorrect. There are far more skills needed than that. Depending on the field you are in, math, design, understanding systems, enterprise development etc...
themegainferno@reddit
most programming as I understand is really just problem solving, reading and writing code is more and more being supplanted by AI/LLM tooling. Problem solving however, is a lifelong skill that will forever apply to software engineering
Alsciende@reddit
Sure, problem solving is the crux of CS, but don't delegate reading and writing code to AI. That's really not the kind of advice I would give to someone who wants to learn programming. AI is a tool, an assistant. You're still the one responsible for shipping good, working code.
Quien_9@reddit
I think if you are not at the level to delegate mining code to a junior, you are not at the level where AI is more useful than its decremental for you. I say this as someone who just started learning tho
Alsciende@reddit
"mining code" is a strange term, but: 1) indeed we were talking about people learning to code, 2) even a senior dev must be able to read and criticize the code of junior devs (or IA). Delegation doesn't mean blind trust. Junior devs (or IA) make mistakes and it's the role of a senior dev to show and explain them.
ScholarNo5983@reddit (OP)
I agree, having good math skills is a bonus. But I can guarantee, if you are great at math skills, but can't read or write code you will never make it as a programmer.
Embarrassed-Pen-2937@reddit
Still not what you said. You said one skill. That is 100% incorrect.
ScholarNo5983@reddit (OP)
This is what I said:
In reply you said this:
I'm sorry but it this is total rubbish.
Why do you think the 'fizz buzz' test was invented?
It was designed to eliminate 95% of pretend programmers who can't program. And it was invented because there are so many pretend programmers who can't pass that test.
This test is so simple it can't be failed by any half decent programmer. Yet it still wipes out 95% of candidates only because they can't write a single line of code.
If anyone can pass step three of my test, they will easily ace the fizz buzz test as they will know how to write what is a basic program.
My step 3 actually assumes, you have the 'ability to read and write code' meaning fizz buzz would be an insult to one's intelligence.
Embarrassed-Pen-2937@reddit
Reading and writing code doesn't mean that you understand the intricacies of writing "good" code. I pulled the good from your comment. Being a good programmer requires mountains more than reading and writing code. Planning a good piece of software requires planning, understanding users, understanding what you are solving, a certain level of system design, impelementing production level software, testing and testing principals etc... I could list dozens more skills other than reading and writing code. Overly simplifying a profession is not helpful for people that want to get into a the field, and frankly is insulting to people who have put years into learning their craft.
ScholarNo5983@reddit (OP)
That is exactly what it means to be a good coder.
Please explain to use idiots the intricacies that are required to read and write code at your level.
Also, if someone was able to read and write code, without having the intricacies to match your requirements, are they just pretending to be good at writing code?
I'm hoping you could list the attributes one would need to achieve your level of brilliance just so we can all get better and strive to be as good as you.
So please sir (or madam), can you help us all out by providing that list?
I am begging you; I want to be just like you.
Embarrassed-Pen-2937@reddit
It is ok to say that maybe you over simplified a career, and accept that you are incorrect, without spitting sarcastic vitriol. If you are incapable of taking criticism, with out lowering yourself to attacking, I will no longer converse with you on the subject.
I will tell you another skill that you need as a programmer is to be able to accept criticism with grace and if you disagree, to prove your point without attacking ad hominem.
ScholarNo5983@reddit (OP)
One key skill of any programmer is to deal with logical constructs, rather vague statements.
My logical construct was this:
And your retort was some abstract rubbish, and I will quote it for you just in case you have the memory of a goldfish:
What does that mean other than being some form of buzzword bingo?
And what I find most interesting, if you were hiring for a programming role the skills you would be testing for would be an ability not to read and write code which is hilarious.
In any case I don't care. I don't tolerate fools lightly. Your total lack of understanding of what it takes to write code is hilarious.
It would appear your idea of a programmer hire is someone who struggles to read and write code. Are you trying to compensate for you own inabilities?
syklemil@reddit
Yeah, I think #3 could work if we
s/good/productive/
; but to be actually good there's a higher requirement for skills, knowledge and experience.One thing is stuff like having some idea about data structures and algorithms. Most of us aren't smart or endowed with enough study time to figure it all out on our own, but it's real nice to be able to avoid some common pitfalls there.
Another thing is the old adage about the difference between
n
years of experience, and 1 year of experience repeatedn
times (or, even worse, even smaller time units).I think I'd rather phrase #3 as something like
AdministrativeHost15@reddit
NeoChronos90@reddit
I don't agree on 3 and 4
3 has already been commented, so here are my thoughts on 4:
If you have the basics down and not in it just for the money, but actually love what you do, you will be good at anything within days or weeks.
Only thing I ever struggled with, was esoteric stuff that is fundamentally different than all the other things you came in contact with before. But you don't need this stuff, you only look at it for the challenge.
ScholarNo5983@reddit (OP)
I have been working as a contract programmer, in the Microsoft Tech stack for close to 25 years. I also have knowledge of gcc and g++ on Linux, but no commercial experience. Despite me having extensive C/C++ experience working on Windows all of my attempts to land a C/C++ developer role on Linux have failed.
In fact, I've had a hard time staying relevant as a Microsoft developer, only because 15 years ago Microsoft moved away from C/C++ to push C# instead, another language I had to learn to stay employable.
One of the hardest things a programmer has to deal with is making sure the skill listed on their resume stay relevant, as this can be difficult as the tech space is constantly changing.
Now that is correct, hence the reason I've managed to reinvent myself several times over the decades.
However, in my experience, employers are reluctant to train people, so if your resume does not match their job description, you might not even get an invite to the first interview.
And during that first interview they will be expecting your resume match their job description, and while they are more than happy to invite you in for an interview, shortly after you get the call from the recruitment agent telling you the client didn't think your skill where best match for their requirements. It can be brutal out there.
Now while this might be considered unfair, this is reality for most organizations.
Doctore_11@reddit
I tried multiple times to learn. It's not as easy as Youtubers and Angela Yu tell you.
I'm 37 years old. I'm a legal translator and AI is destroying my industry. I have no fucking clue what to do with my career.
I tried and failed. Coding is not for everybody.
ScholarNo5983@reddit (OP)
Coding is definitely not for everyone. As I said in my earlier post:
So, I will say it again if you can't read and write code then you will fail as a programmer.
AI is destroying most industries. Many programmers coming out of college have gone through their degree using AI, and because of that they can't code. And for the same reason I said above, they will struggle to make it as a programmer.
I'm much older than you, so I come from a different generation, but the first thing I would say is never give up.
The second thing I would say is don't spend your life on YouTube trying to learn to program. Don't spend time on internet tutorials or any other online course.
If you want to learn programming, get a book on your preferred programming language of choice, and spend a month or two reading the book and then trying to learn how to code from that book. It is the easiest way to learn. That is how I learned.
Now, if after a month of reading nothing sticks then programming is probably not for you.
But trying to learn from YouTube must be the hardest option possible (for a beginner), so give yourself a chance to learn and get a book.
Go to your library or buy a secondhand book and spend a month or two seeing if you can learn from the book.
Now here is the secret. If you read and understand that first book, the next step is to get another on another related topic. By the time you are onto your fourth book, you'll be ready to apply for your first programming role.
It is never about how much you study, but how much you can understand. I graduated as an engineer, but I taught myself to write C using a book and I then learned C++ from another book.
It worked for me, so what have you got to lose. Get a secondhand book on your beginners programming language of choice and see how you get on. But expect the first month to be difficult and after one month the decide if programming is for you.
Happiest-Soul@reddit
Do you simply read random books and hope for the best?
I usually get analysis paralysis from all of the choices and recommendations. Even this community has links to a boatload of different kinds for many languages.
Henryjohnsonseo@reddit
This is so true. Focusing on one language and actually building stuff made all the difference for me. I’ve got an AI setup now that helps me track what I’m learning—it’s like having a quiet mentor in the background .
eruciform@reddit
agreed, tho probably better on r/cscareerquestions
ScholarNo5983@reddit (OP)
I'm not pretending to offer career advice. I'm only giving advice to those who post to learnprogramming.
For example, I have no idea how someone would become good at accounting.
The advice I'm offering is nothing more than my learned experience of how to succeed as a programmer, so I would have thought it was exactly suited to the learnprogramming subreddit.
But hopefully with your skills, you can translate my advice to other suitable subreddits like learnaccounting or learnbrainsugery, just so this advice does not go to waste.
eruciform@reddit
wow that's obnoxiously unhelpful, i hope you're proud of wasting your time making that comment and the time of everyone that had to read it
Happiest-Soul@reddit
How odd. His reply to you was similar in tone to his main post, but you did a complete 180 lmao.
Thisisntsteve@reddit
ScholarNo5983@reddit (OP)
immediate_push5464@reddit
As an aspiring developer, this should’ve been shorter. Something like.
Step 6 CMD + P Cancel Print(‘step6’) File + Print Preview Open Mapquest Print
I would’ve learned more from this algorithm than your advice.
adispezio@reddit
cubicle_jack@reddit
Agreed, we focus a lot on specific skillsets in today's workforce, but often forget that we need a strong base of being a good and hardworking human first to do literally anything! You may change your mind later in life about your career... career's change, the person behind it is what will keep you growing.
Saucynachos@reddit
To expand on point 5, aim to have T shaped knowledge. Know a bit about a lot of things, and have a deep understanding of a specific thing.