Great post! It's amazing how many simple, repeatable concepts are used from the beginning of our careers all the way through.
I wanted to add an additional tip about tutorials. Try renaming the variables/functions in the tutorial you're doing. Then you can't copy/paste. You have to understand the connections in order to successfully complete the tutorial. This is even better with tutorials that use the same variable names in different scopes. If you just blindly follow, you may not even notice the context of usage is different!
+1 to Laurie's comment. Staying vigilant about doing these things as you gain experience is they key! When I find myself off course on a problem, usually I can track it back to not doing something you've detailed here.
You've done such a wonderful job distilling the core principles in this article, Ali!
Great post! As a beginner, what helped me escape tutorial hell is that I simply set out to create a project and Google (DDG actually haha) stuff when I need it, and after doing a few tutorials initially, official documentation felt pretty understandable
Don't forget that folk wrote code before Google arrived ;-). We must have managed somehow! For me having a mentor helped, as they could be googled for tips and hints. Also starting on a partially complete project (like contributing to open source?) helped as I could see how the problem was being addressed and didn't need to cope with the whole thing myself.
I like your point about breaks. Many times I have beaten my head against a wall only to solve a problem in seconds the next morning. Not only is this a standard "creativity trick" (letting your subconscious work for you) but a good motivator. Ernest Hemingway apparently always left himself something to finish at night so he'd be motivated to get started again on the morning.
A possible 9th (it's similar to #8, but not quite the same): repeat what you learned in the tutorial without referencing it. You can reference if you need, but then do it again _^ After you've finished the tutorial, you've gotten past most of the hurdle for that material, but only gotten a small amount of its value. If you do it again, there will be much less hurdle and just as much value (b/c the first time, you're struggling with the procedure, so it's hard to see the big picture). Each time you do it, it will get easier (unless it's been a while), and you'll have opportunities to gain insights you weren't previously in a position to see.
If you do a tutorial once, then you should do it at least 2 more times since the cost of those 2 times will be lower than the one you've already spent, and the understanding you'll build will be higher than what you've already gained.
IME, anyway _^
For those of us who gets code shy (gun shy?)
of getting back on the path - specially when there's
F.O.F (fear of failure) in back of the mind.
Love to see some of your pseudocode which
has been transformed into python code?
As a side thought here? How about reversing actual
python code into pseudocode? Just wondering if someone has done this?
As well as having a code library of “how to do x” I also have documentation on how to solve problems which is a master list of links and problem solving methodologs
This is def a need.
Can you give examples we can see?
I believe this makes a good roadmap for Noobs like me!
Great advice and a good reminder for those of us who might have a 'custom' (read eh, it works usually) approach to problem analysis / solving (e.g. me)
I have been stuck here for years. Thank you for the tips. I will work on them now.
this post is packed with useful content.
This is beautiful Ali. I assure I would adhere to every bit of advice stated here. You're a tech angel.😄😄
An incredibly helpful reminder, and useful for my friends who are always asking for resources to getting started!
what kind of programmer are you?
Thanks for this series. As someone who has been stuck in the tutorial loop, alot of good pointers for finally moving past that.
Bookmark google search instead of code snippet.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.