I would love to get your recommendations on the following:<p>Getting Started: What would be your general advice for someone starting now?<p>Text Editors/IDEs: Which text editor or IDE do you recommend for beginners today? What about code assistants?<p>Learning Resources: Which books or online courses are most helpful for learning programming now?<p>Changes Over the Decade: How have your recommendations changed compared to advice from 10 years ago (in 2014) due to advancements in AI and tools like ChatGPT?<p>Any insights or suggestions are greatly appreciated!
You can find detailed explanations about ChatGPT o1 and the tools used from scratch on GitHub. I’ve added everything you need to get started! <a href="https://github.com/mergisi/openai-o1-coded-personal-blog">https://github.com/mergisi/openai-o1-coded-personal-blog</a>
check r/opendirectories for course collections and add them as a library to zymotv and scan them, voila! free course content.<p>as for an editor i use vscode and vim (server configs etc)<p>I don't use a plugin although i did just install Continue on vscode but i have no idea how to use it. Usually i just go to chat-gtp interface and get coding help there.
Editors: I use Jetbrains IDEs. I am unusually sensitive to my tools freezing up and IntelliJ IDEA is much better than Eclipse. It has a local LLM that can fill in the line you are working on which is very helpful. I think the coding assistant is better at sci-fi chat than it is at coding but if they could reduce the overhead of cutting, pasting and such the IDE integrated assistant might win.<p>I use the IDE as much as I can to edit files on my local machine but for remote sysadmin I use vim. I use a small fraction of its functionality (sort of like notepad) and the only configuration change I make is to add<p><pre><code> :syntax off
</code></pre>
because the average terminal doesn't consistently have readable contrast for alternate colors. My theory is that I might need to use an editor when I'm fixing a machine is thoroughly trashed, vim is already installed, and I don't have the opportunity to install an alternate editor or configure the editor. Or maybe I am helping somebody with their machine and I don't want to touch anything more than I have to.<p>Code Assistant: We have a data retention deal with Microsoft for Copilot at work so I use it.<p>My usual strategy for programming languages I use a lot is to spend a lot of time reading and re-reading the official documentation and learn how to look things up quickly. For languages with good docs like Python, Java and Ruby this is the way to go. Other languages have worse docs. I've never been a fan of stack overflow.<p>Copilot often answers questions that I might answer from the docs correctly and quickly. Sometimes it gets it wrong. The other day it was telling me that, in Java, there is no artity0 method Optional.orElseThrow() but there is.<p>Copilot does a great job of writing little Python, shell and cmd.exe scripts to do little tasks and it was a big help figuring out how to use PostgresSQL functionality I don't have on my fingertips and then expressing it in JooQ. I wouldn't expect it to succeed at writing anything big that has a complex relationship with its environment though.<p>Learning: I liked the Python and SQL courses at HackerRank both of which I felt were a lot of fun and low friction. I started knowing a lot but I learned even more.<p>To deal with rapid technological change over a lifetime the best resource I had was the formal education I received as an undergrad and PhD student plus a lifetime of voracious reading. Just about the only things that have intimidated me are cardiology (so many kinds of block) and continuations in Scheme. (Though there are things in psychodiagnostics that I had to chew over for 20 years to really understand) A firm foundation in the basics of math and applied math (e.g. theoretical physics) has served me well. The experience of doing original research means that if I have some hard coding problem (discovering the rules to make a system work and keep working) or need to debug problems in color management that affect my art projects I know how to draw a circle around some system and figure out the parts and how they fit together and master it.