Intermediate programming and beyond

num1

Registered Member
Joined
Oct 24, 2022
Messages
84
Reaction score
46
Hello all!

I've been learning code and comp sci for the past few months. I've got a good grasp of JavaScript, and know a bit of Python, Java, PHP. I also have a great understanding of HTML, CSS since I've been learning/doing that since I was 13. I think I've got a great understanding of the fundamentals and find myself picking up new languages pretty easily if I set my mind to it. But I really struggle getting a better understanding of more advanced topics like search algorithms and data structures. I have absolutely no clue where to start if you asked me to "create a bubble sort algorithm" or any other real data structure or search algorithm. In general, my code architecture seems to be very off and while I can conceptualize what I want my code to do, I find it very hard to implement my ideas and turn my idea/concept into a real program/website.

My question to you, BHW, is how do I go from a "beginner" to "intermediate" and "advanced" programmer? Please do not say something like "just make projects yourself," but instead tell me good projects to do. If possible, refer me to older projects you made or older YT videos you watched to help you. Any help is appreciated, since I really want to get good at this without using chatGPT (until I'm good at it and too lazy to make the framework of a program myself).
 
read a book about ptogramming concepts. they give you good examples, explain how specific algorithms and data structures work. o'reilly has some good ones (you can also find them for free as ebook rips).
these days people just go to youtube and pick up a quick tutorial about a specific problem, thats why there are so many mediocre programmers out there.
 
read a book about ptogramming concepts. they give you good examples, explain how specific algorithms and data structures work. o'reilly has some good ones (you can also find them for free as ebook rips).
these days people just go to youtube and pick up a quick tutorial about a specific problem, thats why there are so many mediocre programmers out there.
Do you mind PM'ing me a few good books? Can be on any language or subject, just need good material. Especially reading material since I've been just watching videos and feel like I haven't been picking up any useful information.
 
Isaac computer science a level recourses has everything you could need to know to become a good intermediate programmer in terms of beginning to understand search algos ect

https://isaaccomputerscience.org/topics/a_level?examBoard=all&stage=all#aqa
go to 4.3 for programming concepts. They have good text walkthroughs + videos on how everything works (programming and just basic fundamentals of comp sci)

Once you've got basic knowledge, hit up leetcode. While its not big projects that you can work on, doing the problems will help your programming skills greatly and as you get better you will realise "Oh, i could use (a bubble sort, a tree traversal algorithm ect) here to solve this" and it will let you get hands on experience with coding/using fundamental data structures and algorithms.

For bigger projects, a simple google search is always good. Find one you like and give it a go.
Maze traversals (A* search) or a Chess AI have been my favourite to make/grasp the concepts

Finally, go to GitHub and have a look around open source projects (you will find a lot of apps you use on a daily basis are open source lol). Gives you an idea of how real world code looks and you can even build up reputation by contributing to projects.

Hope this helps and good luck on your journey :)
 
Finally, go to GitHub and have a look around open source projects (you will find a lot of apps you use on a daily basis are open source lol). Gives you an idea of how real world code looks and you can even build up reputation by contributing to projects.
Do you think its good to go and actively read code for bigger projects as a beginner? Or, if not, should I read code for smaller size projects and try to figure them out? I have heard its best to read a lot of code, but when I try to read code I can seem to piece it together, but its more of a blackbox where I can understand why it works at a very very high level but not exactly how it works at a low-level, and that is one of the main stumps im trying to get over.
 
Mainly how you go from beginner to intermediate in my opinion is how you think about the projects structure and how this will impact down the line.

Code quality and the ability to work alongside other devs/engineers. Use Git.

I think it’s best for you to learn from someone better than you that has good practices.

I don’t recommend reading from open source project, although they do have their golden nuggets, unless you understand their project and why they have implemented/structured their code in that certain way there’s no point.

It’s just trial, error and learning from here on out.


Oh yea and probably algo/data structure knowledge is something you don’t get a lot of from being self taught.


Move into typescript too, that helps you improve your code quality.
 
Do you think its good to go and actively read code for bigger projects as a beginner? Or, if not, should I read code for smaller size projects and try to figure them out? I have heard its best to read a lot of code, but when I try to read code I can seem to piece it together, but its more of a blackbox where I can understand why it works at a very very high level but not exactly how it works at a low-level, and that is one of the main stumps im trying to get over.
I wouldn't necessarily say its about fully understanding the entire program and how it works (keeping it as a black box is fine). It just exposes you to new and interesting concepts that you wouldn't have even thought of searching for and gives you an idea of how big companies code.
 
I highly recommend this course when udemy has their monthly sales on

https://www.udemy.com/course/datastructurescncpp/
You can get a taster for some of his popular videos if you are looking up youtube, but nothing beats having a nice index of all the algos, and easy access to quickly relearn them when you need to.
 
I think it’s best for you to learn from someone better than you that has good practices.
I'd love to learn from others who are more experienced, but I'm not around anyone like that and don't ever get the chance to meet people like this. How can I get around other likeminded people, and programmers who I can learn from? Beyond that, what knowledge is worth picking from their brains? I wouldn't think I'd talk to a senior engineer about the fundamentals of programming or even intermediate topics.
 
I'd love to learn from others who are more experienced, but I'm not around anyone like that and don't ever get the chance to meet people like this. How can I get around other likeminded people, and programmers who I can learn from? Beyond that, what knowledge is worth picking from their brains? I wouldn't think I'd talk to a senior engineer about the fundamentals of programming or even intermediate topics.

You’re probably looking for a mid not a senior. The way you want to do this is you want to work on a project with someone together.

People don’t have time to teach unless they are working on something together.

You’re probably gonna want to find people in discord that’s your best bet.
 
You’re probably looking for a mid not a senior. The way you want to do this is you want to work on a project with someone together.

People don’t have time to teach unless they are working on something together.

You’re probably gonna want to find people in discord that’s your best bet.
Gotcha. I've also been kinda bouncing around languages trying to soak up as much information as I can. It's mostly working because I'm still on relatively beginner concepts going to intermediate, such as OOP for example, but my question here is: do you have any specific language that's the best to master which will translate well to other languages? At the moment, I'm thinking it's best to master one language and then if I need to learn a new one, I can just kinda google and read docs on syntax and therefore should be able to translate my knowledge into the new language pretty smoothly over time.
 
Gotcha. I've also been kinda bouncing around languages trying to soak up as much information as I can. It's mostly working because I'm still on relatively beginner concepts going to intermediate, such as OOP for example, but my question here is: do you have any specific language that's the best to master which will translate well to other languages? At the moment, I'm thinking it's best to master one language and then if I need to learn a new one, I can just kinda google and read docs on syntax and therefore should be able to translate my knowledge into the new language pretty smoothly over time.

Worse you can do is bounce around from a language to another. Also, don't be too greedy and already think about "translating" from a language to another.

First, define your objectives. Do you want to go onto web development? Javascript/Typescript are your best bet. Want to go into scraping/machine learning/everything data related? Python is the king, here. Of course, that's not absolute, you can do web dev with Python and data related stuff with Javascript, but still, pick just one. If I were you, I would steer clear of Java, C/C++ and php unless you have a specific reason.

I second leetcode if you want challenging exercices. Also check Project Euler.

It would be easier to advise you if you tell us more about your objectives.
 
From what I am seeing from your description. More than learning a language you need to get better understanding of logic . Train your mind to see how can solve problem using a particular language. Logic is something you cant learn from books. So be patient and do logical exercises /puzzels.

Best way to approach is arrive at different ways to the same solution - This will train your brain and not stick what books tell u .
 
Back
Top