How many time did you spend learning programming?
Posted by huejiojio@reddit | learnprogramming | View on Reddit | 56 comments
Hi, everyone! I'm currently self-learning programming (Python), and I've found that I really enjoy learning it! But the reason why I'm trying to learn is beacause I want to make a career change, and right now I'm unemployed. I make this question having this practical condition in mind, I would like to have a temporal expectation, even if I know that it's hard to tell accurately how many time I will spend. So I wanted to know about your case.
Thank you very much in advance!
deleted_by_reddit@reddit
[removed]
PoMoAnachro@reddit
In other words: as long as any other professional career takes to learn.
Most people won't become a software developer any faster than they could become an engineer, nurse, or certified accountant.
One advantage though is it is a lot easier to self teach yourself software development than, say, nursing so you can learn faster if you're brighter or more driven than average.
exomni@reddit
LMFAO, this is so not anywhere close to true. You can't become an engineer, nurse, or certified accountant after a 6-week bootcamp dude, but tons of junior engineers in the US have successfully landed jobs with nothing else.
sfaticat@reddit
Depends on a lot. It can be that way of taking a while based on current market conditions. Also just gaining a basic knowledge isnt enough. The 6 week bootcamp can maybe make you competent in a language or two but if you dont showcase it with relevant projects, you wont be considered for a role
exomni@reddit
Bootcamps are almost invariably project-based. Six weeks usually means a 4 or 5 week curriculum based around a core project, followed by a 1 or 2-week self directed project. So at the very least you will graduate with two projects in your portfolio to showcase. Which is more than I have seen from candidates that I have interviewed.
sfaticat@reddit
Yeah I agree. I did one for UX Design and really did learn a lot but the portfolio and project part did me no favors
PoMoAnachro@reddit
You can't become a hireable software engineer after a 6 week bootcamp either.
There was a period where they were hiring anyone with a pulse, but those days were an aberration. We're back to 4 year degrees being the standard, though highly motivated people can still probably get there in a year. You could probably also do all the CS classes in a 4 year degree almost as fast if you skipped the electives.
exomni@reddit
This is definitely not true. I've been conducting interviews throughout all these periods. While we were in the depths of layoffs we were able to hire some really impressive seniors, but we're back to interviewing juniors and the quality of the candidates has not improved at all.
Honestly what makes the biggest difference is things like: can you conduct yourself in the interview like a professional human being anyone would ever want to work with. "The rizz" as Gen Z calls it. Companies will still hire self-taught/bootcamp/no-work experience for junior roles as long as you seem like a tolerable human being.
huejiojio@reddit (OP)
Thank you! Your insight is very helpful :)
changingpace1300@reddit
Good answer 👏
Virtual-Climate9167@reddit
It's one thing to learn a programming language and another to study computer science. If someone dedicates themselves exclusively to Python, they would have an advantage over those who studied the degree.
PoMoAnachro@reddit
The thing is - knowing the programming language isn't really the valuable skill people are willing to pay money for?
Deep fluency in a language definitely makes you more effective, but frankly that's mostly a benefit for you, the programmer.
Problem solving skills and the ability to understand systems are what people are actually hiring software developers for. I don't think you can acquire those skills without understanding a programming language (or two or three or...), but you can absolutely understand a programming language without learning those more valuable skills.
Virtual-Climate9167@reddit
Yes, you are right, however that is what portfolio projects and job interviews are for, they are to check that you can solve problems... Not to see if you have a career or not.
Underwood914@reddit
So feeling somewhat lost after 16 hours between two weekends shouldn't be discouraging, thank you.
AdeptLilPotato@reddit
However, most people with CS degrees aren’t actually that skilled in programming.
If you take time to build out a bunch of your own projects, you will come out more skilled than them.
I know because I tutor some now. Even a genius I was tutoring, but he was simply lacking experience. He got the degree, but didn’t come out with the skill gained through experience. He picked things up really quick, but experience even with him being faster simply isn’t a quick process.
arkvesper@reddit
From not coding at all to being employable, without any courses or anything? Unless you have good connections, I would give yourself a year, and start building projects to throw into a portfolio (git & personal website)
It could be less, but it could easily be more, and that's a reasonable expectation imo.
sorry, I know that's probably not what you want to hear but unless you're good at networking or have someone that can get you interviews, it's likely to be a bit of a grind
huejiojio@reddit (OP)
Thank you very much! Your answer has helped me a lot!
CodeTinkerer@reddit
It also depends on what you choose to learn and how much time you spent. A while ago, someone said they only wanted to spend 2-3 hours a week. That's too little. You don't have to go crazy and spend 40 hours a week. It's hard to absorb material at that pace, but maybe 10-12 hours a week?
The key is more about consistency. If you do too much, and then get burnt out and take a break for a few weeks or a few months, you can potentially forget all you've learned. Even a week or two can start to lead to forgetfulness.
The key is to program, don't try to rely on Chat GPT if you get stuck, and ask yourself, each day, what did I learn yesterday, and what did you learn today? What can you program?
Your ability to understand programming, to program, and to debug your programs should be the benchmark by which you judge (some) of your progress.
huejiojio@reddit (OP)
Thanks! I'm binging all the concepts so I can start playing and doing things. Your advice is very helpful!
CodeTinkerer@reddit
Try writing down what those concepts are, say, in a Word or Google document or some note taking app. It's easy to get confused when you're trying to absorb that material. Summarizing is a key skill that forces you to explain, on paper, what you understand. If you don't know what you understand, you probably don't understand it.
Responsible-Fun5967@reddit
Hi! do you have any tips on how to network? i want to land an internship i think it will be helpful.
CodeTinkerer@reddit
It's harder when you're self taught. A decent college (at least in the US) will have a career center and invite companies and you could, in theory, make friends with your classmates.
They used to do this thing called "meetups" where tech people would meet once a month or so in a local area. I don't know if such a thing exists or not in your area. I haven't done any meetups personally.
sfaticat@reddit
I originally wanted to be a UX Designer and it took over 2 years. 1 year doesnt sound bad
Active-Pay-8031@reddit
41 years. Never stopped learning.
vegan_antitheist@reddit
It's about 25 years now. It takes about 10 years to get good at it. Around 3 years to get good enough to get a job. But IT is a lot more than just programming. Good programming isn't that important for success.
huejiojio@reddit (OP)
Hi, thanks for your answer!
What would you consider is important for succes?
vegan_antitheist@reddit
The most important thing for success is understanding the needs of the customer. Programming skills are almost irrelevant. Make sure you make the right thing. It's way more important than making it right. You can fix bugs. But you can't restart from scratch if you didn't listen to the customer. Make sure actual users test the system as soon as possible so you get feedback early. Never lose focus and always have a strategy. The goal must be well defined, or you will never be successful. Teamwork is important. A group of people focused on a reachable goal will most likely be successful. Make sure you don't get hindered by managers who think they should micromanage you or who think they should create useless excel sheets with a plan that nobody even cares about and daily meetings just to waste you time. Time estimates for programing tasks are impossible, but you can't just say that it will be ready when it's done. The customer always needs the next release yesterday. Make short intervals, expect requirements to change all the time, and don't promise too much. Make sure the requirements (tasks, epics or whatever....) are prioritised well. Those without project experience must learn how to prioritise. Many people don't understand what it means and confuse it with complexity or testability/test expenditure. Don't waste too much time writing documents that nobody will ever read and are outdated the next day. Share knowledge. Follow best practices. Never stop learning. Have fun. Be excellent to each other.
RobertD3277@reddit
Programming in general, 44 years later of being a programmer and I'm still learning something new everyday.
Python, I had the basics down in a few days and I'm still learning that every day as well.
the_packrat@reddit
Nobody really stops learning if they continue to do it. I'd suggest that what will accelerate you most is not thinking about 'learning the language' but instead get enough to bootstrap and then start writing tools or utilities to solve problems you have which will then force you to learn more things to solve and problem and so on.
Python is a fine choice for that, it has wide library support for doing... almost everything.
sfaticat@reddit
Ive been slow at work and have been learning code like its a full time job. I recommend using a pomodoro timer if you can code more than 2 hours a day. You can really burn yourself out quickly without balancing relaxing the brain and input
diagraphic@reddit
16 years. Thousands of hours.
Curious_Parking_9732@reddit
1000 hours to become decent at everything (fullstack)
if you want to specialise in front or backend, can be less even.
I started off learning fullstack from the get go, was rough in the beginning but you become very robust and ready to learn new things more easily
ventilazer@reddit
After full time committing to learning I'd say in 5 months you are at the point where you have enough knowledge to start specializing (web or game dev). This is the answer. To master your specialization will probably take 3 years.
ToThePillory@reddit
I started learning in the 1980s and still learning now.
You're asking how long it takes to learn programming to point you could possibly get a job. For most people it's probably a year or two.
HoboBeered@reddit
20 years or so and counting...
And I'm still not very good at it.
grantrules@reddit
I feel that, lol
akoOfIxtall@reddit
Spent? You're kind enough to think that i finished it?
Rain-And-Coffee@reddit
Since you are currently unemployed you might have a slight advantage.
If I were you, and determined I was serious about making this change, I would treat it like a job.
Get up early, got to coffee shop, and crank out 2-3 solid hours, then another 1 or 2 later in the day. Obviously adjust as needed.
I would also try and have some structure, maybe follow an online free program. Then do a self assessment 6 months out and see where you are.
Aglet_Green@reddit
44 years. I'm just about done figuring out how to type out "Hello World," but I figure it's a good start.
Muhammad_C@reddit
1st Tech Role
My first tech role was “Process Engineer - Technology” (PE), or also “IT App Analyst”, at Amazon, and I only had ~1 month of self teaching myself programming in JavaScript.
The PE role builds software for Amazon.com Seller Support. The primary tool is an internal visual scripting tool called “Paramount Workflow Designer”, but also uses programming languages JavaScript, Ruby, and ION & Fusion (internal).
Background
I graduate with a Bachelor of Arts in Art in Summer 2021 and started as a College Hire L4 Area Manager on the Warehouse Ops side of Amazon.
Side Note: I worked for a few years as a Tier 1 Warehouse Associate while working on my bachelors degree
Programming Journey
I started to seriously learn programming in December 2021 after work as an Area Manager.
I started with JavaScript and book “Head First JavaScript”, along with YouTube videos & edabit.com to practice syntax.
Transition to Process Engineer - Technology
I ended up getting lucky and finding this PE on the Amazon.jobs site.
The requirements for the L4 role are low, no specific degree is required nor work experience; but they do want you to know some programming & process mapping (or similar).
Timeline
Interview Process
After December 2021 I slacked off and stopped self teaching myself programming. So, when I did my interview for PE I only had ~1 month of learning JavaScript.
Luckily, the interview process is fairly easy and only required reading code snippets that covered programming fundamentals (I.e. variables, loops, functions, arrays, exceptions, etc..).
I somehow passed even though I gave up on answering the last question that covered looping through an array because I stopped at the arrays section.
2nd Tech Role
Currently, I’m in my second tech role working on converting over as a “Software Development Engineer” (SDE) at Amazon (internally).
Note: * ~17 months after self teaching myself programming in JavaScript I was able to internally start the conversion process as a software engineer * I started back self teaching myself programming after internally transferring over as a Process Engineer - Technology * After being a PE & self teaching programming for ~8 months I enrolled at Western Governors University (WGU) for a 2nd bachelors, Bachelor of Science in Software Development (BSSD) * Completed the BSSD from WGU in ~13 months (2 terms + term extension); and only paid $8k USD total
t00oldforthis@reddit
About 1.5 years before I landed a job and then about 4 years and counting since. I still am learning every single day, it's the coolest thing about fields like this!
alwyn@reddit
38 years and still going...
Aexxys@reddit
11 years soon 12
NemATolvajkergetok@reddit
This learning curve never ends. I've been on it for 26 years.
nagmamantikang_bayag@reddit
Two main factors: how fast you can absorb things and how much time you can dedicate to studying.
Learning the fundamentals could take about 1-2 months if you dedicate yourself full time.
Structured learning helps a ton instead of mindlessly googling programming concepts.
After learning the fundamentals, start building projects.
Start simple, then gradually add/learn advanced features such as OOP, database connection, async, login sessions, security, design patterns, etc.
This could easily take months but building projects will accelerate your learning 10x.
So with a structured approach, I’d say the minimum is 6 months to 1 year of full time learning.
Also, take breaks from time to time. If you study every day without breaks, it will only burn you out and make you hate what you’re doing.
exomni@reddit
How long to become employable in Python?
Months, if you find the right job. Learn Web development: how to write RESTful backends, how to use an ORM, basic SQL, how to write unit tests. Learn HTML/CSS and basic ES6 JavaScript for the frontend.
With that very little amount you can start doing lots of basic web work in very short order, which means someone will be willing to pay you.
BlueHost_gr@reddit
35 years. Started to learn with gwbasic and now at my 47 still learning everyday although I am a professional running my own business as a programmer.
kevinossia@reddit
Thousands of hours spread out over a few years.
After that, a lifetime.
Careful-Lecture-9846@reddit
I spend many a time
f0brin@reddit
Also self-taught and currently working as Frontend Developer. I was unemployed for a while in a foreign country. Spent literally 8-10 hours a day almost everyday. It became my full time job. I of course gave myself time to spend with my friends and my partner. Now that I'm employed I chilled a little and currently learning backend maybe 2 hours every other day.
It's a never ending journey and if you really love it, it's just rewarding. You've got this. Good luck!
lambdaline@reddit
I spent about two years studying it seriously before I got a job. And by studying it seriously, I mean devoting around 2 to 4 hours every week day to working on it most weeks. It was about a year and a couple of months before I started casually looking.
But it's worth noting that I'd done some casual programming (learning a bit of python, java, sql and php, mostly, though not enought to make anything substantial in any of those languages) when I was in high school and had dabbled here and there with it through college, including at some point doing about half of the Ruby track of the Odin Project, back when it was rails-oriented. It wasn't the most effective learning, but it got me comfortable enough with the basics of it (i.e. I had a pretty instinctive grasp of how to write a loop and conditionals and functions, and knew what recursion did even if I didn't always know how to apply it; I was mostly at the point where I didn't know how to string together the fundamentals to make a large app that did something useful and had significant gaps in the theory).
huejiojio@reddit (OP)
Thank you very much for your experience! :)
SoftwareDoctor@reddit
I started coding when I was 15 and found my first programmer job when I was 20. And I spend around 4 hours a day coding on average. I didn't do any bootcamps or courses or anything, so it definitely can be done faster.
huejiojio@reddit (OP)
Thanks for sharing your experience with me :)
ajorigman@reddit
For me? 6 months from deciding to change careers to starting as a junior dev.
But as others have said, it varies a lot between people. My approach was to immerse myself and be completely full on which fast tracked things. Also did a bootcamp so I wasn’t completely self taught, which again massively sped things up as I had a structure and timeline already mapped out for me with plenty of support.
onebraincellperson@reddit
lucky guy!