4 ms·
I would recommend you learn Python or JavaScript first and use an interactive coding environment like a Jupyter Notebook, because it will allow you to try diffe
by ivansavz 3y ago
I would recommend you learn Python or JavaScript first and use an interactive coding environment like a Jupyter Notebook, because it will allow you to try different inputs and see the outputs (or errors) immediately. Learning/exploring through trial and error is very powerful.
For learning Python, you can check out this blog post I wrote recently, which makes an analogy between Python prompt and a regular calculator you are already familiar with. I go over some basic topics like assignment + for-loops + functions: https://minireference.com/blog/python-for-stats/ https://minireference.com/blog/python-for-stats/ There is a lot more to programming than this, but if you learn these three concepts you'll have done a big chunk!
There are A LOT of good resources for Python beginners. I think you should try a few of them out and see which ones you like best. Here is one example https://www.youtube.com/playlist?list=PLbFHh-ZjYFwGeYhQ2yIQF8EFlIF9tuZlj https://www.youtube.com/playlist?list=PLbFHh-ZjYFwGeYhQ2yIQF...
Good luck with your learning. Remember that seeing errors every few seconds is normal... this is how everyone learns, and even advanced programmer run into errors all the time. It's part of the game, so don't be discouraged.
- gandalfgreybeer 3y agoI agree with using Jupyter to get a good grasp of everything that’s going on and experimenting. However, while doing so, I think it’s good to keep in mind building something that’s not in a notebook format as I think notebooks tend to foster bad coding practices. This is from my experience as someone straddling both academia and a data science position in a startup where I have seen it rampant on both ends (slightly more understandable in academia but terrible for anything that actually goes into production).
- ivansavz 3y agoYes, totally agree. I was thinking of notebooks strictly as the first contact... get the notion of python commands, variables, syntax, etc. It would be great to "move out" all the working code that has been REPL-tested into a separate file. Bonus points if it is a standalone command-line-runnable script that does something useful, e.g. after reading inputs from `sys.argv`. The exposure to running programs in the command line is probably a key skill I would include in the ABSOLUTE BEGINNER (because it is a prerequisite for so many other things). I suppose running a "server" would also be good to learn (even if just localhost), but that's getting into the HTTP/TCP/IP stack, so I would cover that CODING 102, not CODING 101.
- codinglearner 3y agoThanks, this is really helpful! I did not know https://jupyter.org/ https://jupyter.org/ before!