Try to determine what field you would like to enter, web developement
or scientific programming like ML or A.I. for example. That will give you a
hint on what specific skills, languages and tools to learn.
If you want to get into programming there’s one big advise:
Code as much as you can, it’s a skill you learn in practice.
You will hit many walls, overcome obstacles and learn on the
fly, but that describes the developer job very well.
Your degree and experience will give you a great foundation for
the job hunt btw. If you on top sharpen your problem solving skills in
places like Codewars you should be able to tackle the interviews.
Good luck on your journey!
Here’s a link to YouTube video that describes the paths
in software engineering in 20 minutes.
Some of them like ethical hacking need job experience to master,
web development is still one of the best starting points.
Woah, how did I not know about Codewars! Thanks so much, man!
I actually want to start my career in frontend Web Dev first, and then gradually learn the backend stuff. Machine learning is probably much harder to get into when one is just starting, based on what I’ve gathered.
Say if I want to start cloning a great commercial website (e-commerce, popular small business, etc) , where could I find the best sites to model after? I have all the coding knowledge necessary for this task, but I just need more practice. (Lots and lots of practice.) Thanks!!
PS: I want to stress that I’m not actually “cloning” things for any financial gains lol…This is just for practice because it’s talked about on that Codewars page, and I thought that was a great idea. Think most freelancing gigs nowadays just want that exact kind of thing done as quickly as possible. So why not learn to build a boilerplate first?
This is one of the sites I’m using to prepare for the job hunt that will start for me next year, it’s a free alternative to paid services like Leetcode and AlgoExpert.
I was in the same position like you before I decided to change into programming so I love to share my experiences with people in the
One thing that works for me regarding projects: I’m watching YT videos
with big tutorial projects, take notes the whole way through and start to build the thing on my own, adding my ideas and designs. It’s so much work, you want to gauge your eyes out at some points, but it helps so much with learning the trade.
Thanks so much again, my friend! What was your profession before you ventured into Software Engineering?
Nurse I had to quit due to health problems.
I live in Germany and thanks to our unemployment
insurance I get my education paid for by the state.
I’m a life long nerd and was happy to find out that
I was able to learn coding when I prepared for the
formal education. I love it and hope to convince
my interviewers of that next year
I generally don’t recommend coding along with YouTube videos. That leads to getting trapped in ‘tutorial hell’ where you never build the skills to break down problems and design solutions.
I’d also be careful focusing too much on Leetcode or Codewars type problems. Those help you prepare for the questions that some interviews use, but they are not representative of professional development and many posted solutions are low quality or gymmicky from a production code perspective.
I would focus on building your own projects as soon as you build up some fundamental skills.
Woah, I did not know that. I’m technically unemployed too, but I saved up a lot of money from my previous gigs. Here in the US, I think I’d be on the streets if I don’t have any savings lol…
Well, that’s nice that they do that in Germany. Quite a few of my friends actually moved to Germany for grad school studies. I wish you luck in your job searching endeavor, my friend!
PS: I think we’re all nerds here. You’re in the right place
PPS: We should add each other on LinkedIn or something. You’re my first fCC friend!
Yeah, I think I found a video that’s pretty nice and fast paced. He builds the entire ecommerce site from start to finish. I learned a lot because I’m actually in the intermediate level, and I already understand the syntax. It’s some of the creative/design ideas that really helped my growth.
But I agree that this is very bad for beginners if they are just coding along and don’t understand what the code actually does. They will end up learning nothing after like 2 hours.
well I didn’t say “code along”, I said takes notes and then go make it your own thing. What you are doing is reverse engineering what you see and build your own project. Do that a few times and you won’t even need a video to start, but you have to start somewhere.
Reverse engineering is a completely different skill from writing your own software.
‘Reverse engineering’ other people’s code is a tempting trap that gets you stuck in tutorial hell instead of building skills. It’s comforting because it is easier and the video author knows where the solution is going, but it is completely different skills watching someone else code than coding yourself.
I honestly think everyone operates differently.
In Daniel’s defense, he did say that he would start modeling after other people’s work and then eventually start projects from scratch by himself. I mean, different people learn things differently. Whatever works for one person might not work for another.
On the other hand, I also understand where Jeremy is coming from. He definitely has the good intention of sparing us newbies a lot of pain and is trying to point us in the right direction, which is much appreciated.
I’ve lost track of the number of learners who ‘operate differently’, spend craptons of effort copying and reverse engineering code others wore, and then can’t break down new problems into pieces they can solve and write their own original logic from scratch. Maybe one day I will meet someone who problem solves well after focusing on copying other people’s code, but it hasn’t happened yet. Syntax just isn’t coding.
I use tutorials is to pick out a specific example and a specific tool when the documentation isn’t great. But it just doesn’t show how to cut down a problem into pieces and a plan of attack. You can see tutorials that give hints about that, but it’s something that you need to practice to get good at.
Learning how to problem solve is hard. The only way I’ve known people become good at that part of programming is to just do it a lot.
It’s like learning how to ride a bicycle. Your dad always pushes you at first and be right by your side, but he eventually lets go and lets you ride on your own. It’s a simple concept. Try to understand other people’s point of view, Jeremy. It might help you in your career too.
I understand your point of view and his point of view. Just because I disagree with the effectiveness of the approach due to my years of experience in education and my years of experience in programming and seeing hundreds of learners and hundreds of developers does not mean I don’t understand your point of view. It just means that I don’t agree with it.
I am happy with the direction of my career, thanks.
You could have voiced your disagreement in a much more diplomatic way and still get your point across. You might be ahead of us in terms of the software engineering career at the moment, but unfortunately your soft skills leave much to be desired. Hope you have a great rest of your day, sir.
I’m perfectly happy with my soft skills, thanks. I’m sorry you are unhappy with me disagreeing with a common trap that a lot of learners fall into. I intentionally strongly dissuade this particular trap because tutorial hell is hard to get out of and I have seen it harm many learner’s progress. It has been my experience that adding a lot of fluff around the core message that tutorial hell hurts learning detracts from the core point. Just because I don’t soften the danger of falling into tutorial hell does not mean I lack soft skills. I intentionally dissuade people from this trap strongly.
Like I said above, tutorials have a place in providing examples of a specific technology, but they just can’t teach problem solving skills. You can trick yourself into thinking that you are learning in tutorial hell, but tutorial hell has killed many people’s dreams of becoming successful programmers. To get good at solving problems, you need to practice solving problems.
Doing a few code-along projects is perfectly fine when first starting out. I’d say, it is expected. But as said, it is easy to get stuck doing that over and over again, which isn’t helpful (it is actively harmful). So, it is worth warning against as it really is a big issue for many beginners.
The minute you start to create your own projects, even if they are just derivatives, you will run into specific problems that need to be solved by you for your project. That is when you start to move to the deep end of the pool.
Videos, articles, and code can contain plenty of useful information you can cherry-pick from. They also let you learn implementation details. Web dev is a massive topic and learning it all just by reading docs and “doing” can be a bit unrealistic. You are also more likely to pick up some nasty habits from doing it “your way” in a bubble without any guidance from more senior developers.
First of all, you are a random stranger on the internet. I have no reason to believe that you’ve had any success in the education field, or that you’re in it at all. That’s fallacy #1.
Even if I give you the benefit of the doubt, when you site your “years of experience”, that’s called appeal to authority. That’s fallacy #2.
The biggest one is that your reasoning is straight up a form of Survivorship bias. People who tried their own way and succeeded would not typically hang around or come back to even give you a “I told you so”. They’d be too busy being successfully at their job. That’s fallacy #3.
The “people are all the same” ideology is exactly what’s wrong with the education system. If I had listened to people like you, aka most of my professors, I would have never finished my physics degree because it’s all a load of bullshit, pardon my language.
To those who are reading, I say just try whatever works best for you. Stop listening to naysayers. That’s all I have to say to the whole thing. Peace.
You can easily Google my credentials if it is important to you. My GitHub, CV, LinkedIn, and research history are all public record.
The Appeal to Authority fallicy is a reason to be cautious of expert opinions. It is not a valid reason to ignore experts. ‘You are an authority so you must be wrong’ is also a fallicy. I am explaining what I have seen but I am not telling you that my experiences are the sole reason to believe what I’m saying.
I made no claim based upon survivorship of one specific process. I specifically called out Tutorial Hell as a learning trap that I have seen many people fall into and fail to meet their goals.
I also never claimed that all people are the same. Note that I never prescribed a particular learning process. I only said that you need to do programming if you want to get good at doing programming. There are tons of learning paths inside of that advice. I’m only cautioning against a specific common trap. There are many valid learning paths that are not the Tutorial Hell trap.
If you are unwilling to believe what I say, you can research this phenomenon yourself. Learners falling into Tutorial Hell is a common problem and there is a lot of information out there on what Tutorial Hell is, why learners fall into Tutorial Hell, how to avoid Tutorial Hell, and how to get out of Tutorial Hell.
As I said above, I’m all for using tutorials to learn specific technical skills. There are good ways to use tutorials. I, and many other programming educators, just caution against over-reliance on tutorials because Tutorial Hell can and does hurt people’s learning.