Skip Navigation

I can't code.

Across this vast Fediverse, I have encountered a trend of people answering questions with esoteric programming language speaking in tongues that I don't understand, including under my own posts. I am a Boomer when it comes to coding and I am only 27. I don't even know where I would start to learn it because programming is so diverse. I want to feel like I know what's going on but I don't. Coding is the future and the future is now and I am lagging severely behind. I guess I'm asking where a bumbling novice like me can learn more about where to start when it comes to programming.

132 comments
  • What are these answers...

    Wrong place to ask, but whatever.

    It depends on what you want to build. If you're not sure, start with Python. It's likely easiest to pick up and get running. There's a book called "Automate the Boring Stuff." I think there's an online version. (Edit: link - https://automatetheboringstuff.com/)

    If you don't want to set up Python (or any language, really) on your computer, there's a tool called a REPL that you can find online. So you can just search "Python online REPL," and you'll get a functional online environment to code. Now, you won't be able to do stuff interacting with your local computer this way, like reading files, but it's good for learning the basics of the language.

    In terms of software for writing code in on your local computer, Visual Studio Code (NOT to be confused with Visual Studio) is a free, lightweight code editor. It supports every language via plugins.

    If you do go the Python route, make sure to learn about virtual environments before you do 'pip' or 'conda' anything. Also, unless you're doing data science things, stick to pip. (Maybe some personal bias there, but I hate anaconda.) If you're starting from nothing, it'll be awhile until you get there anyway, so don't worry too much about it.

    Most importantly, find a community that welcomes new learners. Learning to code is absolutely fucking brutal, so having supportive people available makes a world of difference. Bonus points if you can find an offline meetup in your local area.

    • Python is the way to go for any newbie imo. Js has too many weird pitfalls that don’t make sense when first starting out

      • Also if you're looking to make a job out of it, Python will lead you to job opportunities that are imo much more satisfying than JS.

  • Try "the Odin project", which has an amazingly active community.

    But before you try too much, once you've learned to set up any programming tools, just use them to have fun. Find a way in which you can use programming in relation to your hobbies.

    With JavaScript you can manipulate any webpage you see or create your own interactive webapp. Even if it's just a few ugly buttons and text fields, you could make an app that calculates good builds for a videogame you like, for example.

    If you want to interact with a windows operating system you can't go wrong with C# using visual studio. This will literally allow you to manipulate files, folders or automate anything you want from the operating system.

    Try to find something that is fun and just enjoy yourself with small apps before you try to go too fast.

    • I agree. I can only learn languages by having an idea of something that'll excite me. Making a to-do app rarely teaches me anything since I don't have fun doing it.

    • What about music?

      • Sorry for the late reply. If you're interested in music, you could give both javascript or C# a try. C# works integrated with the operating system and is not sandboxed by the browser, which means that you could do nifty things like actual sound processing and interact with sound devices etc.

        In general you will want to start with a console application that receives user input, does something and even prints the output. Let me give you an example of playing an audio file in C#

        LINE 1: System.Media.SoundPlayer myAudioPlayer = new System.Media.SoundPlayer(@"c:\mywavfile.wav");

        LINE 2: myAudioPlayer.Play();

        In the first line we are calling a pre-existing blueprint (library) that knows how to create an audio player. This blueprint can be located in System > Media > SoundPlayer within the collections of libraries. We are giving this virtual audio player a name and called it "myAudioPlayer". Then, after the "=" sign we are giving it the instruction to be created with a preloaded file that would be found in "C:\mywavfile.wav".

        In the second file we are commanding our newly created virtual audio player and telling it to play the file. Please note that this audio player would not have a visual interface yet. You would hear audio coming from the speakers but no way to pause. Fortunately C# / .NET (.NET are the pre-existing libraries that you can use), has a drag-and-drop way to create windows application interfaces with buttons via the "Visual Studio" editor, so you could potentially create a drag-and-drop interface and bind a button with a Stop symbol to the instruction "myAudioPlayer.Stop();"

        This is just a very very basic example, but object oriented programming often boils down to this: create virtual representations of something and then command them to do something.

        If this has peaked your interest check out this playlist of a full complete programming course in C# which is what I used to learn programming years ago. https://www.youtube.com/watch?v=umAcMO3d9_E&list=PLFqasLx4-AErVMCWiIyJe9uA3yQMPBukG

        In the end it's all about creating a series of instructions that the computer will follow. The trick is to learn what these instructions mean and to not be scared by their syntax, because behind every scary looking syntax there's just an instruction that can be explain in human language.

  • I am a Boomer when it comes to coding

    Hey, OP, I think it's cool that you'd like to learn to code. I made my living as a coder for many years and it's a good career path. But I would not say it's an essential life skill and the vast majority of people of all ages get by fine without coding skills.

    With that out of the way, I'm going to defend the honor of Boomers here. Boomers (and the Silent Gen before them) built the technology industry as we know it today. For example, here's a list of popular programming languages and their inventors:

    • Java: James Gosling (1955) - Boomer
    • C: Dennis Ritchie (1941) - Almost a Boomer
    • C++: Bjarne Stroustrup (1950) - Boomer
    • C#: Anders Hejlsberg (1960) - Boomer
    • Python: Guido van Rossum (1956) - Boomer
    • PHP: Rasmus Lerdorf (1968) - X Gen
    • Perl: Larry Wall (1954) - Boomer
    • JavaScript: Brendan Eich (1961) - Boomer
    • Ruby: Yukihiro Matsumoto (1965) - Cusp of Boomer/X Gen
    • SQL: Raymond Boyce (1946) and Donald Chamberlin (1944) - Boomers
    • Go: Robert Griesemer (1964), Rob Pike (1956) and Ken Thompson (1943) - 2 Boomers and an almost-Boomer

    <Adjusts onion>

    . Thank you for your indulgence.

  • I've been coding for 40 years, it's both my job and my hobby, and I still feel old and out of touch when reading or taking part in coding conversations outside of my sphere :)

    This is not meant to be discouraging - even the smallest amount of coding you could learn will be immensely rewarding - more to say that coding is vast arena with a breadth of complexity that can often feel overwhelming. So don't be put off when you teach yourself some JavaScript and then still feel adrift in a conversation about C#.

    I don't have any specifics to recommend, but I would say that you should start small. Don't aim to write the next Flappy Bird as your first project, or the next Mastodon. Just concentrate on making a web page say "Hello world!" or changing the colour of some text. Back in the 80s, most kids got their first taste of programming by having a computer shop C64 print "Dave is rad!" on an infinite loop! :)

    Good luck!

  • I think the modern paradigm of frameworks and libraries really makes things confusing, because you can learn every single bit of vanilla JS and then Angular is still like a different language, just like all the rest. I started teaching myself in 2005 so I did have the advantage of a bit of the old world of programming, but I also wasn't allowed to own a computer and I spent years and years on graphing calculators and notepads learning the basic principles of what is now second nature to me. There's lots of great options people have already mentioned, C# or Python both are pretty good, but pick one and stick to it. A few months of daily work on it will get you far enough to get a grasp, and a few years of it will get you started on a career. But just get started with it and keep at it, I promise you will get it!

  • I will tell you there is no need to be worried about coding. You don't have to be worried about not knowing how to code. The coding part of coding is the simplest and the easiest part, the much much more important part is the thinking part, basically what you want to achieve and how you should go about it.

    A lot of so called professional "coders" don't know what it is that they are doing. A few days ago i looked at my sister's very impressive code. That was truly a hard day, the ways in which I controlled myself by not beating the shit out of her for being a piece of garbage who is incapable of thinking. She would not understand even when explained in simple words why her code was incredibly shit and what to do to fix it, finally she didn't fix it and left ruining more than just my day, she sent me into a trance worrying about the future of mankind as a whole, which I have still not been able to come out of.

    Also as far as coding is concerned I would suggest you get started with python. It is easy and simple. Learn the basics in python, for majority of the things you will have achieved your desire.

    I suggest that you use the book automate the boring stuff as a starting point, it will not only help you with your desire for coding, but may also come out to help you in your day-to-day things as well. You can easily find the pdf for free.

    https://automatetheboringstuff.com/

    • You sound like a lovely sibling...

      • Seriously, what the fuck?

      • You don't understand, if she wasn't my sibling, it may as well have resulted in a fight.

        This code was for a company, not a I'm learning and am just a beginner kind of thing. Let me share a few details about the code:

        The program involved reading a csv file and doing some operations from the data it provided. It was a python program in a jupyter notebook (this is very relevant).

        • She had to create an array of the column names of the table. Her "solution" was to first print the table, then copy paste the column names into an array. When I told her to fix i pointing out the incredibly basic reasons for why not to do that, she refused. Also the table had like 10-15 columns.
        • She was using pandas dataframes, even having a variable called df in her code, also using the functions it provided. Now it will come as a surprise to you, as it came to me she doesn't know what a dataframe is.
        • The reason she showed me her code was because she was getting an error which she didn't know how to solve. The issue was that the array of column names she created and the column names in the table didn't match. This was because when she printed the table the column names were missing _ which were present in the CSV file. One of the reasons for not not doing the first point. When told of the issue she added the _ manually. She will die on that hill.
        • So in jupyter notebooks you have cells in which you add a small slice of code and you run the cell. This is really amazing. Small issue though if you close the notebook and open it again you need to rerun the cells in the correct sequence again, barely an inconvenience . To overcome this great issue, my sister just didn't do something stupid like having all her code in one cell, she was one step ahead, she had all the things she needed per cell copy-pasted. That God forsaken array of column names? You guessed it there were atleast 10 of them.

        Now if she was just starting out, these could probably be forgiven, but she has been "coding" for atleast a few years now. Also she refuses to learn her mistakes.

        Another interesting thing I noticed was, if she didn't know something she would not search Google but rather YouTube. I originally thought she pasted some of the code from stackoverflow which has error, but no she looked at a YouTube video copied the code by hand and that code still resulted in an error because char and int are different, she doesn't understand why it works in the video (same type), and why it doesn't work for her.I am clearly still in a shock about the whole situation and to think someone would hire her only if it is for an internship still, I pray for the world.

132 comments