#LearningProgramming #CareerChange #FrontEndDeveloper #BackEndDeveloper #FullStackDeveloper #SoftwareEngineer
🤔 I’m stuck. Want to learn programming, but where do I start?
So, you want to break into the world of programming, but you’re feeling a bit overwhelmed with all the options and directions you could take. It’s totally normal to feel this way, especially if you don’t have any prior experience in coding. But don’t worry, I’ve got your back! Let’s break it down and help you figure out the best path for you.
## Choosing Your Path: Front End, Back End, Full Stack, or Software Engineer
### Front End Developer
– Focuses on the part of the website or application that the user interacts with
– Languages and technologies to learn: HTML, CSS, JavaScript, React, Angular
### Back End Developer
– Works on the server side of web development, dealing with databases, servers, and application logic
– Languages and technologies to learn: Python, Node.js, Ruby, SQL, MongoDB
### Full Stack Developer
– A combination of both front end and back end development
– You can start with either front end or back end and gradually learn the other
### Software Engineer
– A broader term that encompasses both front end and back end development, as well as other aspects of software development such as algorithms, data structures, and system design
– Requires strong problem-solving and analytical skills
## Learning Path
It’s common for beginners to start with back end development and then move on to front end. However, there’s no one-size-fits-all approach. Some people prefer to start with front end to see immediate visual results, while others find back end more logical and easier to grasp initially.
## Becoming a Software Engineer
To become a software engineer, you’ll need to have a solid understanding of both front end and back end development, as well as other fundamental computer science concepts like algorithms, data structures, and system design. It’s a more comprehensive and challenging path, but it can lead to rewarding career opportunities.
## Time Commitment
The amount of time you need to spend learning programming will vary depending on your background, learning style, and the specific path you choose. When I first started learning, I dedicated around 20 hours a week to studying and practicing coding. It took me about a year of self-study before I felt confident enough to apply for my first job.
## Helpful Resources
Here are some websites and courses that I found particularly helpful during my learning journey:
– Codecademy
– freeCodeCamp
– Udemy
– Coursera
– Khan Academy
Remember, the key to success in learning programming is consistency and practice. Don’t be afraid to tinker with code, build projects, and seek out a supportive community for help and guidance. You’ve got this! Good luck on your programming journey! 🚀
Well which area do you want to work in? Web? Games? Embedded? AI?
If you want to work in web its pretty saturated, but something like Odin Project (maybe a bootcamp..idk personally wouldn’t reccomend it unless you have to be handheld) could work. If your company has an internal transfer I would defintely just go through the Odin Project and try to get to know the devs at your company and see about transferring over.
Degrees are expensive in the states and it’s honestly hard to land a job without one, especially in this job market. Idk about the job market in EU or whatever country you’re from. If you are from the EU and can get a CS/Software Engineering Degree for cheap or free I would do that 100%. Take advantage of your schools’ resources and your status as a student to get internships, participate in career fairs, coding meetups, game jams/whatever. You’ll be in a really good position then to land a job.
I’m a software developer. I recommend everyone gets a degree to get into software development. It’s a hard truth that not having a college degree will massively handicap starting a programming career.
If college isn’t an option then I would go the IT certification route. Get CompTIA security+ certified and get an IT job. Use that job to get CISCO certified and move into a network administrator position. If you really want to go into software development then I would pivot to software development after you become a network administrator.
I made the switch at 31 without a degree or bootcamp, though that was around 2020, before the market went to shit. But that’s not to say that it still won’t happen. It will just be more difficult to get your foot in the door is all.
But I would recommend front end first, as it’s easier to learn, more satisfying in the learning process, as you can see the results of your progress, which lends to maintained interest to learn, and front end will also probably have a lower bar of entry into your first developer position.
As far as courses, I always recommend Jonas Schmedtmann’s Complete JavaScript Course, one I took and was instrumental in my success.
I recommend you just start programming and don’t worry about whether you’re doing the right thing or not. Pick a course and just stick with it. Honestly, just watching lectures on youtube for a college class is enough if you practice along with it.
Be warned though, if you’re just doing this to make money because you feel you’ve coasted through life so far it will be hard. It’s natural to want to make a change and turn our lives around if we haven’t put in all the effort that we can so far. However, it’s best to pick something you feel passionate about.
I absolutely LOVE learning about computers and studying this stuff. But I know I will have more doubts, frustrations and moments of despair down the line. If I wasn’t able to say to myself “At least at the end of this you’ll come out of it with an amazing hobby and passion if nothing else” then I think it would be a struggle.
It’s not a guarantee to get a job from this. There’s no simple formula. It can be done but to get you through the tough times you’ll need a passion for it (not all of it). Maybe if we had done a degree we could just go through the motions, but that’s harder when you are going the path less trodden.
I recommend spending some time studying something like python. It’s easy to pursue and it will give you an indication of what this is all about. Then see if you like it! 🙂
How many hours of programming have you done so far (in your life)?
Hey man, you mentioned backend and Frontenac, meaning that you’re referring to web development. If that’s the case, then start with an HTML/CSS course and learn how to make beautiful static websites, after that start with JavaScript, to bring life and interactions to that website. After you’ve mastered JS then youve successfully mastered frontend. After that you can start with NodeJS paired with ExpressJS and MongoDB to begin learning backend.
If you’re NOT looking into Webdev, then I highly suggest you start with Python. It’s an extremely powerful language and the syntax is extremely user friendly since it’s a high level language. It’s also used app development, web development (django), network hacking, and AI.
The main point is to start, because you will need to learn how to think like a programmer, and that happens as you learn and work on projects and exercises. It’s like an evolutionary process that your brain will go through and you’ll start having vivid dreams of programming while you’re sleeping. It’s beautiful.
Udemy is a great source for learning at a relatively decent price. Check the course reviews and materials.
CodeWars is great for practicing via solving little problems using your language of choice. It has a great community that you can learn from too.
28 is nothing, it’s never too late to educate yourself. Start now. Good luck! You can do it.
Check out boot.dev
An amazing resource to start with is Learn Enough to Be Dangerous. Start at the beginning. Learn command line, html/css, JavaScript or Python, Git, and how to use a text editor(VS code is popular). Once you’re comfortable build a portfolio on GitHub and start applying for jobs. Right now tech isn’t doing so hot but if you network well you’ll eventually find your first role. It used be about 12 months but now it’s taking a lot longer. To make yourself competitive learn full stack. Good luck!
I have read a lot of questions about programming and the age at which to start.
Look, what I can recommend is that you to start it as a hobby. That way you’ll probably find out if it’s what you’re looking for. You might think “well, but I’m 28, I don’t have the time, I could do that when I was 18”, etc. Yeah.. that’s life, bro, but it’s useless to force something that will make you unhappy just because it’s “fashion”.
I can recommend you this [site](https://roadmap.sh) , which basically has a lot of roadmaps to different IT areas where you can search for a lot of information about.
My take on it is there are two approaches.
The first requires a CS degree. The reason is that topics like compilers, multi threaded programming, algorithms, OO, etc. are difficult to learn on one’s own.
The second is more of a journey man’s approach. Learn CSS, HTML, React. There are many online courses to learn this. If you find it fascinating most companies will pay for you to go part time to get your bachelors degree.
‘Full stack’ programmers, at least the good ones, require both. Personally, being an architect and full stack programmer, I find that I am usually driven to the backend where the afore mentioned topics reign supreme. Most developers are weaker in those topics.
Source: been building teams, mentoring and creating zero defect software for more years than I care to count.
Feel free to DM if you have any questions
I really wanted to work in IT, Tech, Coding, Software Development, or just SOMETHING in the tech field.
So I tried a few online courses, and I’m just WAY TOO dumb to even try.
Here’s my suggestion…
Pick something, and build it.
I can tell you that it is *much* easier to learn this stuff if your goal isn’t (solely) to learn it. Treat it as a means to an end.
You work as a customer support associate. What sucks about the tools you are using right now? What would a better tool look like? What things would make your job easier? Try to develop a clear picture and then go figure out how to build a prototype of it. Forget all the front end / back end / full stack horseshit. You want to be a programmer. Programmers build software. Pick something you want to build and go build some software.
Brute force it. Is your new idea a web app, a mobile app, or a desktop app? Whichever it is, go find some tutorial and follow it. Buy some books and read them. Do the exercises and adapt them to do, vaguely, what you want them to do.
This will all sound rather daunting, but I can tell you that knowing how to actually build things is the skill you need to demonstrate. No amount of, “I have watched a lot of Udemy course videos” is going to be a substitute when you want to apply for jobs.
There are, however, literally thousands of books written by people who want to try to teach you how to program, but it will stick more if you are applying it to some problem or another.
I think it might be best using projects. Find one thing that needs/can be fiddled with, tutorial your way into learning how to modify things, like computers, learn about installing virtual machines and loading software onto them and finding bugs and how to correct them and that will help you start to understand logic. Logic is where it’s at. It will all start to make sense why when you are doing any official course. You can also start small and create programs using tutorials on a Ti-83 series lol
Don’t worry about ‘back end’ vs ‘front end’. Just learn programming. The basic stuff will be the same regardless of what you do. Good programmers are programmers who know programming and can jump into whatever language and environment they need to jump into to get the job done.
I think you should use chat gpt and github.In addition having a big project helps accelerate leaning. Going to college might be your best bet if you doing anything backend.
You need to get out of your own way some. Just start learning and don’t stop. YouTube search coding tutorials. Do a python tutorial to start. Then maybe a JavaScript tutorial. Then node. Then nestjs.
Just jump in and go.
Check out launch school. I studied with them for about a year, roughly 20 hours per week and at the end of that time I applied for two coding jobs. Then i interviewed for both and was sure I was going to get both offers because I felt more than qualified based on how the interviews and whiteboard coding challenges went. I should add that they were junior software development positions. But still I feel that I would have been ready to acquire those jobs after just 6 months with the launch school program which is $200 a month. So for about $1,000 or a little more, if you study diligently you can get a software development job the best part is that the entire course is at your own pace. Basically at your own time you can study whenever you want and the only things you need to schedule at specific times are mock whiteboard interviews in between each course. Essentially tests where you problem solve in front of them which made me very comfortable when the actual whiteboard interviews came around for jobs. I can’t recommend them enough. The course is not easy but it is worth it. It covers front end and back end and a whole bunch of other stuff like sql, git, etc
Sounds like you are already reporting issues. What the team could use is an automated regression test. I would learn that first and use it on the job you are in.
This is programming, so you will give you the opportunity right away. Whenever you do some for an actual project it will stick.
If they don’t have a tool you can always grab something OpenSource like a Selenium. This article has several mentioned:
https://www.softwaretestinghelp.com/open-source-testing-tools/
After that is under your belt I recommend taking classes via a community college. Cheaper than any university and gives practical experience. That with some Cloud certifications. AWS Cloud Practitioner, then AWS Developer.
Ideally a full degree from a good university, but I know that’s not for everyone.
Just learn python. i know most people will tell you it’s slow and all but trust me python is the safest and smartest choice. even if you didn’t succeed in back end or any field you desire. with the help of python you can literally do anything.
If you’re in the US and don’t already have a bachelor’s degree, you can get a part-time job at Walmart and they’ll pay the tuition. Not certain they’ll cover CS but worth checking out.
Hi! I was in a similar position as you actually. I really wanted to become a developer and had no idea where to start, and my original degree had nothing to do with software development.
Two years ago I decided I wanted to become a developer. I started my associates degree in frontend development, basically combined it with my job. It was a huge amount of effort but I am so happy I did it.
Online courses are really great, and you can get very far, but in the end having a degree to force you to learn the basics and do assignments that will teach you basic concepts will form a brilliant foundation for your coding career.
I think what you’re trying to figure out first is what kind of software development you want to do. There’s so many routes you can take but just think about what makes you happy. I loved working with the frontend, creating user interfaces and web apps etc. I can do backend, but it definitely doesn’t make me happier. I’d reach out to some of the Devs in your company and ask what their days look like and see if there’s anything in particular that makes you happier.
Outside of getting a degree, Advent of Code is a great place to start, looking up YouTube tutorials where coders explain how they coded a solution for the challenges of Advent of Code. And otherwise, just take things that already exist and try to recreate it.
For languages, I started with Python, it’s a very accessible language with different purposes. Eventually I started focussing on JavaScript and PhP.
I hope this helped a little!
I’m a self-taught SWE that switched around 2018 without bootcamp or CS degree.
Yes, that’s what I did. From the beginning I knew that I was interested in backend so I focused on that, but I also picked up front-end and infra.
Code as much as you can and build stuff. Don’t build the same thing over and over again but challenge yourself. Or, alternatively go really deep into something. To interview, you’ll need leetcode.
I quite my job and focused on building applications full-time and interview prep. The courses that I took are irrelevant now but I mostly relied on querying youtube and google.
I dropped out a math degree and learned software development by myself, it took me about 6 months to land my first job as backend developer, I think the courses I took in college helped me out to develop certain skills that made the process easier for me.
I used to study about 30 hours a week, but I think my process could’ve been optimized If I’d have known what to learn from the beginning.
I strongly recommend two courses from Coursera so you can build your foundations “Computer Science Programming with a Purpose” and “Algorithms 1”, you can take “Algorithms 2” if you want to, but I see it as optional for the goal here, then try to understand a little bit of design principles and then you can learn backend development, make a couple of meaningful projects and go out and start searching that first job.
Try to learn all of that in a Linux environment, you can use wsl2 if you use windows, and something about cloud computing (AWS, Azure, GCS, digital ocean) and micro services (docker, kubernetes) would be a plus. Stick with one language for now, then maybe you can learn more , but I would recommend java, c# , maybe golang (I haven’t seen junior positions for this language).
learn c++, learn the basics, learn data structures and algorithms make a few pet projects, learn about memory management.
then move onto any other language you want. learning it the hard way makes everything else easier. Not to mention learning c++ you get a way deeper understanding of how languages work and OOP
I think you should first decide on a programming language. Of course it is more difficult to learn several than one. You could learn C++, Java or Python, you wouldn’t go wrong with any of them.Â
[https://www.theodinproject.com/](https://www.theodinproject.com/)
For web dev.
If you want anything more specific, pick a project and then little by little learn what you need
I’d recommend taking one (or more) of Harvard’s CS50 courses (free on edX: https://www.edx.org/search?q=cs50&tab=course) to get a feel for programming and decide what kind of software development you want to do (web, games, systems, etc.). Some would argue that the CS50 courses are not the best/most advanced courses you can find on the internet, but they’re actually excellent for what they are: a fun and engaging introduction to programming. They will give you enough understanding of the field and confidence for the next step.
If you’re more interested in Java programming or full-stack programming based on JavaScript, the University of Helsinki also has excellent MOOCs available on https://mooc.fi/ (note: Java and full-stack JavaScript are not the only courses there, just have a look and see if there’s anything of interest to you).
Also, get a CS degree if you can. It will make finding a job much easier, and more importantly in my opinion, it will give you structure and deeper understanding of programming and software engineering principles/patterns. These are more difficult to learn than syntax for any given language/technology. You can still learn them with free ressources on the internet, books, etc., but having an environment where you can get feedback and learn with/from others helps so much.
Finally, build stuff. Work on projects that are interesting to you. They don’t have to be big, quite the opposite in fact. You will learn so much by breaking things, and you’ll feel good when you make them work afterwards. This is what keeps the fire on. And try making small, manageable improvements on past projects after some time (this way you’ll know if your code is readable, understandable, maintainable, etc.).
Oh, and dont rush! Take the time you need to master the craft (read this: https://norvig.com/21-days.html).
Good luck!
Edit (git commit -m): add white space, remove redundant language, fix typos
Automatetheboringstuff.com
Dip your toes in to something that’s actually useful in your day-to-day for the brilliant price of $free.99.