This is fucking dumb. People learning how to code don't know how to start. They don't know what to start writing or where to start on it. This is akin to telling a depressed person "just don't be sad".
Programmer Humor
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
Exactly. If you know nothing about a topic, you don't even know, what exactly to google, except "how to make computer do stuff".
The initial hurdle of incompetence can be extremely frustrating and almost impossible to climb, if you don't have guidance.
My best motivator is having an issue and a need to solve it (e.g. room is cold after work but I'd like it warm -> automation or "I hate how netflix is taking away my movies" -> Media library). This resulted in me getting a smart home thermostat and jellyfin.
If you want to learn how to code, can't you just google "coding tutorial for beginners" or something similar? Probably you would need to pick a language, but that would similarly be solved with "recommended coding language for beginners". Then it's very easy to find a resource that starts with hello world and gradually introduces new things. And I'm sure if it moved beyond a browser toolbox, a guide for setting up whatever IDE would be included.
Learning to code is by no means easy, but it's possibly the best type of thing to learn when it comes to having a wealth of free, easily discoverable guides. The main obstacle is choosing to put in the time, and this comic removes that obstacle by forcing them to not put it off.
Well, put yourself in the shoes of someone who knows nothing about programming and googles what you described. They'll be flooded with information that they can't really make sense of. What language do I choose? I want to make games! So is C++ the right one? Can I learn another one?
Look at the questions in beginner forums. The naive, seemingly stupid questions. Many beginners struggle to understand what a language is, and how languages are related. To many a programming language is a series of magic incantations that make the computer do stuff. They treat it like spells.
Then, if you do manage to get over that hurdle, you'll have to put in quite some time to get anything useful out of your code. You'll have to bang your head at many hard surfaces, read tons of unrelated crap because, once again, you don't even know what to google.
I don't know, if you ever worked with complete novices. People who want to learn, but know next to nothing. Where I live, you can do apprenticeships for software development, and I had to guide a few of our apprentices. At that point I had been programming since 14, had programming classes in school, master's degree in CS and several years of work experience. So I was very much removed from being unknowing. Being confronted with the utter incompetence and lack of any context of these guys was extremely eye opening to me. Those were bright, motivated younglings, but everything that seemed obvious to me, was completely beyond their capabilities.
In short: you may underestimate the difficulties to learn without guidance.
I'm sure its different now from when I started - because coding is very popular, and the internet is a thing... But I can tell you, that it took a long time before I knew what a programming language was, or 'coding'... these words were just not familiar to me.
I learnt stuff by just opening random executable files in notepad to see what they look like... mostly it was just garbage that no one can understand - but some of them were readable, and I replicated and learnt from them. (they were .bat files.) I became a bit of an expert in making very fancy batch files. I made customisable menus, and a little adventure game. Then my parents helped me out by buying me a programming book. It was about programming in Visual C++. I was pretty excited - until I quickly worked out that Visual C++ was something you had to buy before you could use it.
Anyway, my point is that it is easy to see what you need from the point of view of an expert; but from the point of view of a novice, you don't know what you don't know. You don't know which words are important, or what anything is called. The first steps are not hard except that you don't know which direction you are meant to be stepping in, or where the starting point should be.
When I've spoken with people who say they 'want to code, but don't know how to start,' dollars to doughnuts it's the same problem as wanting to learn hacking, artistry, or science. (I think the original comic was drawing.)
There isn't a solid reason for why they want to learn X, the wanters just think it would be cool to *be an X-er", and want anyone to hand it to them.
The people who want Y, and need to learn X to accomplish it will take the first step. Though many won't follow through if goal Y is too high. I've pointed people to the resources to learn X countless times. It's only the people who want Y, and are willing to learn X to achieve it, that succeed. Hacker, Coder, Engineer, Artist-er, and on and on. You can lead a horse to water, but not teach it how to drink.
At least for me the most learning to program happened because I had something specific in mind I wanted to achieve and just go for it.
Yes, the code sucks (And I rewrote it 3 times originally, it still sucks), but it's not really something I particularly care about now as it mostly works as designed.
I'm physically incapable of doing code "for the sake of it" something has to piss me off enough to want it automated. It's stifled my theoretical knowledge but I can do a thing if I need to.
It's a good thing I have a big project to occupy my time. No shortage of problems to solve there.
I think some people view it as "if you're meant to be a coder your natural curiosity towards how things work will probably lead you to writing code naturally." But it's a pretty gatekeepy point of view.
It's like trying to make a person learn how to play the flute by just handing them a flute. If they don't know how to assemble it, clean it, hold it, press the keys, and proper embouchure, they're never going to learn how to play the instrument.
Nah, ditch the mouse. Give them a machine with Arch, BSPWM, and Vim.
Arch? You’re way too nica. A bare Debian netinstall and a link to linuxfromscratch. They have wget, so they can get started.
Here. 150,000 transistors. Get to work.
I just use homemade integrated circuits on a huge self-built circuit board, myself. I guess some of you need a lot of hand holding.
I recently sat in a call with someone ~50 y/o helping someone ~25 y/o.....
"Open vim and change xyz" met with "What's vim...?"
I don't think I've ever laughed so hard while feeling overwhelming sadness at the same time 😖
I mean... Young people don't know things yet... Isn't that normal?
I get feeling existential about the passage of time, but... Sad? Laughing? Maybe I'm imagining it wrong, but I dunno. Maybe I'm just the young person in this occasion.
Nono, make them build linux from scratch while staring deeply into their eyes
If anyone genuinely feels this way and wants to get started in coding, I highly recommend doing one of the mooc.fi courses. Codecademy is fine as a taster/refresh but don't waste money on the premium when something like mooc is available for free.
I'm a systems administrator but I'm always looking for ways to expand my skill set, thanks for pointing me towards these awesome courses.
Alright, smart guys. I know how to code. How do I make these variables into a an app?
Honestly I've been trying to learn coding for a while, and there's a huge chasm between knowing a language and doing something with it that I can't go over. I want to make an app to create ttrpg character sheets... Alright how do I make my code into something with an UI? How do I turn it into an executable? How do I turn these lines into SOMETHING?
As stupid as it sounds, you build small blocks and put them together.
In your case, build a console app, that (for example) creates basic sheets. Then you build a small text only interface to plug actual values into the file, then you can think about a GUI.
Many beginners (myself included) want to go from 1 to 100 immediately, but that's almost impossible. You tackle small problems first and then step by step go further.
You may have heard of startups building MVPs, minimum viable products. The basic core of what functionality you want to have. That's where you start.
This has always been my issue with programming. I can visualize how to build a chair, I know what I need to build it and I know what it needs to do. I know how screws work, and I understand when glue is applied.
But with programming it's like i know what the word wood is and I know what the word fabric is, but I haven't the slightest idea how I use any of it to make anything useful. I can't even start to build a plan because I don't even know what's needed for any specific thing.
At least you have an example of what you want to make, I don't even know what I want to make so it makes "figure it out" even harder lol
That is a really good point, and there isn't a one answer first all. If you're looking for a mobile app, then you could do Android studio or Swift for IOS. If you only want to develop one app for both, then maybe you should just do an electron app that is essentially just a website.
These tools will either have a visual interface editor, markdown language (like html), or a way to define visual components in code. After programming an app you can build, which will give you the appropriate executables for the different platforms.
If you're looking to start simple, then use something like pygame to learn the basics of using a visual interface.
What OS do you run? Are you planning on sharing this app with others? Should it be a web app?
Happy to help!
Look for some UI libraries. They provide functions and classes that you can call that will draw things to the screen. As for the executable part that varies per Language. If you want help dm me and maybe we can do a discord call!
this is where branches of coding splitoff, as learning the fundamentals of coding doesn't stop there, its a field where you have to pick up new skills on the go because not everyone needs it.
some people never touch apps because they might work backend or engineering, some people might not touh databases because they arent the ones dealing with CSV files. some people never touch web development (because its not engineering in some jurisdictions /s)
If i have to make a crude comparison, think of it like driving. basic driving knowlege is knowing how to drive a car. Knowing how to drive a car doesnt imply they know how to drive a boat, formula vehicle, big truck, forklift and such, so you need to go into further training for those, but you never should expect someone to cover all usecases.
Wtf, don't tell the plebs how it works!! They're going to figure out how easy it is!
Keyboard for coding, mouse for games.
Seriously? A mouse for coding?
I'm not sure I get it. Is there a significance to him holding the mouse in front of him like that, instead of having it on the table like normal people? It seems to me that if you want to learn to code you should have your hands on the keyboard more.
No, on screen keyboard only!
The comic was originally about how to draw.
As people said, for coding you want to put his hands on the keyboard, not the mouse.
I never noticed before, but it looks like DeForest Kelley is struggling to keep a straight face in that scene..
Programming is self-harm that has positive outcomes.
Obligatory link to the wizard book, aka learn programming the proper way. Never mind the language this is about principles and fundamental concepts. Yes by the end of it you'll have written a compiler, that's the equivalent of a smith forging a hammer and tongs. Flank with HTDP if you need a bit hand-holding putting programs together, SICP is rather pinpoint-focussed on the concepts so doesn't contain much in terms of design. If you want a stand-alone implementation of the language (with the first link you can run all the code boxes in the browser, fancy newfangled stuff I approve of) racket is the way to go, just add #lang sicp
in front of your files and you'll have the exact dialect the wizard book uses.
The wizard book has been the standard recommendation for like 20 years now, the only reason other tutorials exist is because newbs insist on "how to move cube in unity without programming" type of hand-holding. It's not actually helping them, on the contrary I see much learned helplessness in the young'uns.
From those basics you can dive into whatever concrete you need for whatever you want to do, you'll have the necessary background to not be lost at sea. To further build that background knowledge it's a good idea to have acquaintance with a broad selection of standard data structures, algorithms, and their properties. No need to go in real depth but you should have an at least intuitive understanding of why they have the properties they have, like, don't be surprised if your game stutters if you're using hashmaps. O(1) and amortised O(1) are not the same thing.
Last, but not least, never write your own datetime or unicode handling code.
Can't I just take a magic potion?
I mean, coffee can help
Alright, I learned graduated harvard and learned how to code, now how do I center a div?
Source: the actual harvard university website
Starts typing gibberish in Microsoft Word because the magic hand still hasn't told me how to get started coding.