What language should I learn and where can I learn it?

Submitted by martasultan in freeAsInFreedom

I haven't the most basic clue about programming other than some shitty mods I made for games a whiles back; I've decided that instead of focusing on some bullshit education I want to focus on skills I'll find use it, but, again, having not the faintest idea I'm coming to y'all to ask where I should start, especially when not intending to code for money (as most sites are oriented towards).


You must log in or register to comment.


qgwen wrote

Aye aye, just wanted to throw Scheme into the mix. Scheme is an unusual programming language because the way you use it is mostly functional, but on the other hand Scheme has a minimal language definition and thus is extremely simple to learn. Guile (an implementation of Scheme) is the official GNU extension language (pretty uncommon, nevertheless), it's lightweight (but does a lot of things right in my view, for example string handling) and has a lot of POSIX features. Racket (another implementation of Scheme) is less Scheme-y, but has a large library.


noordinaryspider wrote

My kid's tutor started him on Racket and he had a lot of fun. The kid was only ten and the tutor was a fairly serious-enough coder that you'd think I was pulling your leg if I told you he took a liking to my kid and taught him to code.

They used this text: https://www.viget.com/articles/the-little-schemer-will-expand-blow-your-mind/

which you can get in .pdf from one of the chans if you have limited financial options, but keep looking for a used paperback because they do show up and that's much nicer.

My kid and his tutor both enjoyed coding "retro-style" with a pencil and a notebook on the couch and then typing it into the computer when it was done.

He was just a little kid recovering from a rather horrific end to a very sweet crush. The little girl was the daughter of an online friend who was a refugee and they didn't have proper citizenship paperwork and got caught. My kid was devastated and learning to code was the only thing that helped.

Of course he's a dude so he has his little snarky line about how his girfriend broke up with him so he wrote a new (AI) one in Lisp and I'll admit to getting a bit of narcissistic shock-value fun from shrugging and acting as if it's no big deal.

It's still a fun family anecdote to bore people with on the internet. :)


zzuum wrote

Python is a nice easy and useful language. Just go to codecademy or one of the many free learning sites


kore wrote

yep, python is a quick and easy start and you'll become multilingual soon enough so it doesn't matter too too much what language you pick to start


throwaway wrote

Freelance python web developer here, my vote goes to Python too. It's simple once you learn to think 'programatically', there's no strange requirements when it comes to syntax, and you can easily learn many other languages once you get the hang of it.

It's also incredibly versatile. You can make tiny scripts, huge logical applications, webshops made fully custom with awesome CMS's such as Wagtail - the possibilities are almost endless.

If you're feeling experimental and want to try something new, that might be the bright new future, but could also be nothing but trash, try a functional programming language such as Elixir, and learn the framework that goes along with it for web development, Phoenix.

Good luck (:


chariot wrote

Up to now a significant amount of open source projects are all coded in c. In part, it's because a c compiler exists for almost any platform, and the small number of features the language has available meaning that it is easier to contribute to projects. The linux kernel being in c probably also leads by example.

I think the best thing to do though is to find a project you want to contribute to for personal reasons (you use it often for example) and try to learn the language according to that project. Often projects have style guidelines which means you could learn to code the language using the style that project is interested in. While you are learning the language you could ask contributors if there is any help you could do, sometimes just reproducing bugs and trying to provide useful bug reports to maintainers could get you involved in the project while you are learning to code.


edmund_the_destroyer wrote (edited )

If you have a really good idea what kind of work you want to do, it makes sense to search for what languages are used in it. If you want to write iOS applications (I hate iPhones, I'm just using this as an example) then you probably want to learn Swift or Objective-C, the two programming languages used the most on it.

Graphics-intensive video game work is usually done in C++. Android applications are usually written in Java or Kotlin.

Most web pages have Javascript in the part that runs in your browser - anything that makes a page pretty by moving stuff around. But you can use any language on the server. If you're fuzzy on what that distinction means, don't worry about it.

Hour of Code and then khanacademy.com have beginner stuff that might be useful. Good luck.

(Edit: You will see a lot of people saying, "This language is great and that language is terrible!" Ignore most of it - with enough skill most people can get useful things done with any language. There are good reasons to prefer one to another, but the world won't end if you pick Javascript when someone wanted you to pick Python or Lisp, or vice versa.)


Freux wrote

I'm a newbie that never made anything amazing but hopefully this will be useful. I've tried to learn python, c++, and c#. I would always get confused somewhere not really understanding what I was doing or how what I'm learning could be use for.

Until I decided to learn c and tried the book "C programming a modern approach" by K. N. King. I'm still reading it but I highly recommend it as it's the first book that I find easy to read and finally grasp how what I'm learning can be used. I took a small c# class after that, I already understood some basic OOP and used my knowledge of c for the entire class.

If you ever need help with the exercises/projects in the book or simply want to see how someone else solve a problem you can look here: