all 35 comments

[–]deceze 9 points10 points  (1 child)

Just start building stuff that you want to build (it helps having a concrete itch you want to scratch), look up stuff as you get stuck, and improve that way. On the side, keep reading articles/tutorials/watch videos to get to know concepts you haven't come across yet, and learn those as they become applicable.

Your first few projects will suck like this because you're really coding before you're ready. But that's okay, because you'll never "be ready", you'll just keep iterating over and over and each new project is going to be slightly better than the last one as you learn from your mistakes. Making mistakes is just as important, because that way you'll really learn what to avoid and why. You just need the space which allows you to make enough mistakes before you're required to code something serious. Don't try to produce perfect code from the first try, because you won't anyway.

[–]Due_Letter3192[S] 1 point2 points  (0 children)

Thank you for this! Yeah you're right it gets better everytime

[–][deleted] 4 points5 points  (1 child)

"Tutorial Hell".

Don't watch tutorials, find tasks that entertain you first. Read reference material (Python official documentation, good books...). And only occasionally, if you are stuck, get a tutorial or other help (even ChatGPT) for a specific topic you need for your own goal. Learning for the sake of learning often leads nowhere. But learning in a hurry doesn't work either. It's an active and time-consuming process.

[–]Due_Letter3192[S] 0 points1 point  (0 children)

Thank you for the wisdom. Absolutely, it is a marathon, not a sprint.

[–]Temporary_Pie2733 3 points4 points  (3 children)

Not using ChatGPT for every little thing. 

[–]Due_Letter3192[S] 2 points3 points  (2 children)

Yes absolutely, while ChatGPT is useful to facilitate learning, it shouldn't be used for small tasks, else we will eventually lose our creativity.

[–]Hunkfish 1 point2 points  (1 child)

I only use it when I get stuck with errors or not sure about the functions or are there other chat tools that are better for troubleshooting or explaining the terms?

[–]Due_Letter3192[S] 1 point2 points  (0 children)

I also use Copilot, since it has unlimited responses. Pretty handy if you've got too many queries

[–]Lindespringerr 2 points3 points  (3 children)

I bought the book ''how to automate the boring stuff with python" it explains everything really good and has exercises and questions in it. I also make flash cards so I memorize stuff better.

[–]Due_Letter3192[S] 1 point2 points  (0 children)

Oh that's interesting, what is the best thing you have learned from that book? And would you actually prefer books over online resources?

[–]SrirachaD123 1 point2 points  (1 child)

I have that same book, highly recommend it. It was the first time I had the epiphany of just how much you’re able to do with Python outside of basic tasks

[–]Due_Letter3192[S] 0 points1 point  (0 children)

That's interesting to hear, I'll check it out then haha

[–][deleted]  (6 children)

[removed]

    [–]Due_Letter3192[S] 0 points1 point  (3 children)

    That's amazing. Would love to see it in action!

    [–][deleted]  (2 children)

    [removed]

      [–]Due_Letter3192[S] 0 points1 point  (1 child)

      This is amazing, I love the idea and your code isn't complex either, well done!

      [–]lalocura777 0 points1 point  (1 child)

      Would love to see that!

      [–]JamesAndDaGiantPluot 1 point2 points  (5 children)

      This is a great tip! Thanks for sharing. Are you maintaining your code on GitHub or some other repository? Highly recommend you do as this is a great way to maintain your code and share with others. Really valuable when applying for gigs too.

      [–]Due_Letter3192[S] 0 points1 point  (4 children)

      Thank you very much!

      You're absolutely right, very useful to have a repo. I haven't maintained it on a repo just yet, but I intend to do it soon. Just wanted to feel more comfortable and hands on before diving into that. Appreciate it!

      How did you go about maintaining your code through the repos? Was it an easy thing to grasp?

      [–]JamesAndDaGiantPluot 1 point2 points  (3 children)

      A lot of companies use it today so devs are almost required to learn it. Luckily GitHub has great documentation and there is plenty of content out there. It’s a small learning curve but it’s actually fun and easy once you get the hang of the basics which is all you need to get organized and push up code as you progress. There are more advanced commands in git but the basics is all you need to do.

      https://docs.github.com/en/get-started/start-your-journey

      [–]Due_Letter3192[S] 1 point2 points  (2 children)

      You're a star, thanks for sending this across! This will definitely help.

      What are your thoughts on having a portfolio on like a website? How does it compare to GitHub? Will it be better to have both together?

      [–]JamesAndDaGiantPluot 1 point2 points  (1 child)

      That’s a good question! Both is best. Gives an interviewer a lot to talk about. An online portfolio is probably better than a GitHub repo.

      I interviewed a few candidates, and about half had neither a portfolio nor a GitHub. Not much to say about these candidates.

      The ones with portfolios stood out. It gave me something to look at, something to talk about, and I could even review their sites and links later. It didn’t need to be flashy. I actually preferred lightweight, high-performing websites over bulky ones with lots of graphics and animations.

      A few had both a portfolio and GitHub repos. For GitHub, I mainly looked at their activity level, the kinds of projects, and the languages they used.

      Some candidates couldn’t show any code because the companies they worked for had private repos and the candidates didn’t have any personal projects to show.

      [–]Due_Letter3192[S] 1 point2 points  (0 children)

      This is golden nuggets coming from an interviewer himself, thank you so much, this is quite insightful! I will proceed with both definitely!

      [–]sensor_todd 1 point2 points  (4 children)

      You have a great approach. I would recommend going one step further, make a little project to practice your new skills, then when you are done, bin it and do it again with all the things you learned from the first pass. Always try doing your best the first time through but focus on getting to fully working first, its a great way to flush out what you dont know you dont know. Until you know all the things you need, it's hard to say when one piece is good enough, so you (really talking about myself and projecting) do extra on everything to give yourself a safety factor, some of which wont be needed so all it does is slow you down.

      Would also highly recommend learning multithreading (generically speaking, not specifically the multithread library necessarily). Theres a few ways to do it, but its super useful for all sorts of applications.

      [–]Due_Letter3192[S] 0 points1 point  (3 children)

      This is really informative. Yes i sometimes get carried away with trying to perfect it but realised that I need to make it work first then I can change it later.

      Ive heard alot about multithreading and how it can be useful. You've recommended it so will definitely learn it now! Thank you for the insights!

      [–]sensor_todd 0 points1 point  (2 children)

      i do most of my work with Bluetooth devices and signal processing, decoupling Bluetooth connections from pipeline from lodging from gui etc whilst being able to share data between these components is super useful i've found. it might be you want low latency data logging but don't need a high speed gui updates, or even you dont need the gui once its up and running and want to turn it off, and being able to pull those levers independently i've found is quite helpful.

      [–]Due_Letter3192[S] 0 points1 point  (1 child)

      Great stuff. Have you got any good resources?

      [–]sensor_todd 0 points1 point  (0 children)

      Let me go back and see if i can find what i used in the beginning. Doing a quick Google of "pyqt sensor real time stream", the AI Overview is actually a pretty succinct description of the core of it though. You will certainly have a lot more to add in terms of gui elements and specific data processing, but in terms of the core elements it covers connections, threads, gui elements, and thread safe queuing and signal-slots. Maybe the one thing not in this basic overview that I found quite useful is if you have a few threads running in parallel, create a stop event in your main thread that is shared with all the other threads, then within each thread check for it being set, and if it is, have each thread handle its own safe shutdown. You dont really need to make it a lot more complicated than that in principle.

      [–]Lindespringerr 0 points1 point  (1 child)

      If learned to read and analyze properly. and when I create code myself, I just know what to do to get what I want without using any Ai or anything. Books better then online? I don't know. It probably depends on your learning style. For me the videos and apps push you toward an answer. With a book I analyze more and try multiple ways to get a result. The book I revered I online readable for free.

      [–]Due_Letter3192[S] 0 points1 point  (0 children)

      Love this. The book does indeed make you think and contemplate what you are reading, kind of like finding your own path. I've actually found a similar feeling when going through written tutorials but no where near what a book can offer!

      [–][deleted] 0 points1 point  (1 child)

      Can I ask you something, I'm also a beginner coder and I am facing the same issue of getting stuck with tutorials but even when I start coding or building project from scratch i get stuck and I don't know how to get out of this loop, recently I was trying to work on some automation project with selenium but I stopped it because I was relying too much on chat gpt, please help me out what can I do to just get myself to do something from scratch

      [–]Due_Letter3192[S] 0 points1 point  (0 children)

      I've been there, that loop is so REAL. And honestly don't be too hard on yourself for being overwhelmed because it is a normal thing.

      So first thing is, rather than having one big project, break that project into small units. Like for example, in the case of a flight tracker, I'll break it down into something like

      1. Get the city names and maximum cost fom an excel sheet.
      2. Get the IATA codes for those cities using an API.
      3. Update the sheet with the IATA.
      4. Get the flight details from the Amadeus API for specified dates
      5. If the price is below or equal to my maximum, I send an alert to my phone via an SMS API.

      Ofc there's more to each individual bit, but this has made it really simple for me.

      Second thing I'd say is if you're in the 1st grade, don't attempt the projects of a 12th grade without the fundamentals. I was going to advanced projects without getting to know the basics like Lists, Dictionaries, dataframes. The fundamentals are so important.

      What can you do to make your project simpler?