Hi everyone,
TL;DR Completely new to coding and programming, but I want to learn enough to be able to run a home server, my own website and tinker a bit with Arduino. Is there any programming language or path that you could recommend?
I don’t know if those things are related or not. I’ve been looking at books a bout Arduino, but it’s just following instructions to do xyz, but not explanation of the basics.
About the server and website, I’ve wanted to try it out since I stumbled upon the Low tech magazine. Many of the projects there and the philosophy behind it speak to me, so I would like to be more knowledgeable about it and be able to do some stuff myself.
EDIT. You guys are awesome! Thank you so much for the replies. It’s so cool to see Lemmy populated with cool people willing to chat and put knowledge in common :) I might be updating this post when I get to do something about… well all the resources you gave me!
The most pragmatic answer is to learn Python.
The most pragmatic approach to that is Automate The Boring Stuff with Python which is free to read online. But it might be a little dated and you said you want to learn some basics which I take to understand as underling fundamental theory of programming which it doesn’t provide.
Think Python, 3rd edition, which is also free to read online and was just updated to use Jupyter Notebooks, is a great introduction to the fundamentals of programming theory, but it is lengthier and will take more time to get to practical projects.
If you really want to get into an introduction to Computer Science theory, it would be hard to find a better introduction than A Data-Centric Introduction to Computing which is used at Brown University as well as others in their introductory Computer Science courses. It’s can also be read online for free.
For website things, the MDN Web Docs hosted by Mozilla is the best resource out there.
For Linux server stuff, Linux Upskill Challenge is a wonderful resource.
Have fun!
Automate the boring stuff with Python sounds like something I would enjoy reading, even if it’s a bit outdated. Mozilla’s website seems a good approach for me too, since it starts from complete beginners.
I don’t think I have the time to learn much about computer science theory if it’s not something mandatory. Linux, on the other hand, is something I’m somewhat familiar too (I’ve used it a lot for uni and such as a “distraction free” OS haha) and it looks like any server that I could run on a Raspberry or similar is going to be running Linux.
Thanks for the information!
The good news is that the author has a third edition coming out with updated material. But it won’t be ready until August 2024. I’m assuming you won’t want to wait for that, so I suggest using the current edition to get used to the language and then going through the list of updates and differences in the blog post and “figuring out” how to do some of them on your own.
Also, the author has a book for people who finished Automate the Boring Stuff and want more guidance on good, effective practices with less focus on people with no prior knowledge of programming, Beyond the Basic Stuff with Python, is also available to read for free online.
I should mention that if you have the means, I encourage you to pay for the eBook version of these books on the publisher’s website since this allows the author to continue creating updated and high quality content that’s free for those who feel that $35 is a strain on their budget. If not, no worries, that’s why I paid for his first edition a while back. Al is pretty active online and in the fediverse (@AlSweigart@mastodon.social) and seems like a good dude. He deserves some love, so please give him a thank you at a minimum.
This was a weirdly long reply, but I hope other people subscribed to the Learn Programming community on Programming.dev see it and find some value in it too.