Hi guys, my name is John. I just started my software engineering career. Just finished college with a B.S. degree in Physics, and got about two years of experience in Python. (Turns out you do a lot of that in science) Also did 4 months of internship about a year ago and learned JavaScript, HTML&CSS and Bootstrap. Any advice for a fellow starter?
Hello!
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!
Ps
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
same spot.
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.
Hi,
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.