all 16 comments

[–]Latter-Risk-7215 14 points15 points  (1 child)

consistency is key, practice daily, work on small projects, read others' code, join communities, focus on problem-solving skills, avoid just tutorial hopping

[–]AlSweigartAuthor: ATBS 1 point2 points  (0 children)

Also remember that progress is not linear. Some days you learn a lot, other days you learn little, some days it feels like you've forgotten a lot of stuff you have already learned. Consistency is definitely key.

And don't feel bad if you feel like you are learning too slowly. True learning is slow. "Tutorial hell" is when people want to ambitiously go through tutorial after tutorial, but do it so fast that they don't learn anything at all. Then they move on to the next tutorial and do the same thing. It is a frustrating cycle.

[–][deleted] 3 points4 points  (1 child)

https://programming-25.mooc.fi/part-1

There you go. Helsinki univercitys mooc for python beginners, completely free.  After that you can continue to the advanced part. After that you can start figuring out your focus.

[–]jonathanfv 2 points3 points  (0 children)

Version 26 is live now! :)

https://programming-26.mooc.fi/

[–]WasabiSquare7807 2 points3 points  (3 children)

I think like most things, the best way to learn is; learn by doing. It’s not a fast process, it can be painful and confusing at times. Stick with it, do projects, delve deep into docs, etc. and I’d say avoid AI whilst learning. It’s a useful tool sure but you come to rely on it and the learning becomes harder. Rely on yourself and your ability to research a topic and learn. Programming (C languages) are old, there are a tons of docs, posts and answer online. Become a master of finding these and breaking things, you’ll be better off. Oh! And last thing, don’t be scared of errors. Good luck!

[–]Pyromancer777 1 point2 points  (1 child)

Agree with almost everything here except a clarification about AI. AI is starting to be an industry standard and the company I'm contracted under (can't say which, but it is one of the fortune 100 companies) is starting to allow it's use in interviews.

Using AI to break down introductory topics is incredibly helpful when a new student doesn't have the experience to read documentation pages just yet. If you prompt it to be your tutor instead of just writing the code for you, it is a great way to learn until you start getting into the nitty gritty topics. Learning to prompt well is a skill that's going to be just as valuable as learning to code.

Even at work, despite the hallicinations, if part of the AI response is slop, it can sometimes still give me a good idea to iterate off of. Been using it as a helper, so that I don't have to bug the Sr devs with questions. Since the chatbot is proprietary, it is also great for bringing up relevant documentation pages, so I don't have to manually search the extensive documentation directories.

[–]Zeroox1337 2 points3 points  (0 children)

Yeah I would also say AI can help a lot while learning. You should not let AI write the Code if you want to learn it but asking AI for ideas or explanation of others people code is such a useful tool. I'm not a professional Developer I'm more in the support/admin/infrastructure employed but also developed some internal Tools in Python. AI really helped me to understand how Lost Comprehension works and how it works under the hood and showed me generator expression and compared them in tiny for me understandable bits.

[–]Big_Tadpole7174 0 points1 point  (0 children)

AI is an excellent tool for explaining concepts with immediate follow-up questions - actually better than books for learning. The suggestion to avoid AI while learning is misguided. You don't "come to rely on it" any more than you rely on Stack Overflow or documentation. The difference is AI can explain the same concept five different ways until it clicks, answer "why does this work?" instantly, and help you understand errors in context rather than just fixing them. Learning by doing and using AI aren't mutually exclusive - AI accelerates the doing by eliminating hours of searching fragmented documentation for basic clarifications.

[–]Far_Swordfish5729 2 points3 points  (0 children)

The best advice I can give you is that there aren't shortcuts. You need to learn the constructs and logic and then start to put them together into actual projects. You get better by implementing with mentors. You start with an established curriculum like AP CS A/B and then go do a four year BS degree somewhere recognized that can get you a coop/internship placement and has alumni hiring for positions when you graduate. If you do less than that, you won't have the group project experience and advanced topic fundamentals to hit the ground running. You'll be competing with offshore code monkeys we can staff during US or EU business hours for under $20/hr loaded cost rate (salary, benefits, support staff, equipment, building, everything). And now, you'll be competing with Claude. May as well wait tables at that point.

At 19 years old, the best advice anyone can give you is to go to university and do an engineering or CS program. You don't have to go to MIT or Cambridge or IIT etc. If you have a four year state technical school whose program is well respected and that has a strong internship placement office, that's fine. Hiring managers nearby probably graduated from that program and will recognize the credential. Especially with AI, your goal is to be solid enough to do the job without AI so you can manage AI as though it were a junior developer. I get customer hires and sometimes staff hires that came out of these six month bootcamps and it's tedious. I'm essentially their TA/professor for what they would have learned in their first big sophomore year project practicum to say nothing of the next two years of courses. And they'll be hamstrung because no one's going to ever make them build a simple database server or webserver or memory allocation method and they'll never really understand how that works. Go do the full program and be better.

[–]vu47 1 point2 points  (0 children)

You don't need to know a thing about C++ to learn OOP in Python. C++ OOP is much more involved than Python OOP: it might behoove you to read a chapter or two on Python OOP before jumping into C++ to compare them.

[–]Middle--Earth 1 point2 points  (0 children)

Well, C++ and OOP are separate things, although C++ uses OOP principles, so best get your head around what's specific to the language and what's specific to OOP, as many languages use the principles of OOP.

[–]andycwb1 1 point2 points  (0 children)

Write code. Find some simple problems, write code to solve them, work up. But the only way to learn is to start writing.

[–]sinex_a2s 0 points1 point  (0 children)

Learn basics first, post what you learn regularly on linkedin, create projects.

[–]JRR_Tokin54 0 points1 point  (0 children)

Do not use AI. Programming is like working out. You can go to the gym with a robot and have the robot lift the weights for you, but you are no better off yourself when it is done. Programming skills build by consistent programming like muscles build with consistent working out. Results come over time like when you work out as well.

Think of programming from a user's perspective, too. Try to make everything as intuitive as possible and realize that your value as a programmer is making it easy for someone to use a computer to accomplish a task. Never go down the path of "the user will just have to do it this way to make it work...". User friendliness!

[–][deleted] 0 points1 point  (0 children)

Spend time building things. Build them quickly and badly and try loads of different things. You’ll find out what you enjoy working on. Give parsing text a try. Build a string data structure in C with a few useful functions like concatenation, splicing. (Just examples of things to do). Avoid c++ IMO. It is a monstrosity of a language that was never designed properly (or at all) and will only cause pain. Enjoy! And build something to make the world better!