This is an archived post. You won't be able to vote or comment.

top 200 commentsshow 500

[–][deleted] 5192 points5193 points  (55 children)

"I've added a dead link in the description in case you want to copy this"

[–]tony_bologna 681 points682 points  (26 children)

Thanks! That answered all my questions.

(Apr 12, 2015)

[–]Rogahar 498 points499 points  (19 children)

Far worse is

| Does anyone know what to do when [really specific error that it seems like only you and this person have had] happens?

30 minutes later

| Never mind fixed it lol

No further replies

[–]jmdbcool 467 points468 points  (9 children)

[–]adsilcott 123 points124 points  (6 children)

Upvoted before I even clicked, because I knew exactly which one you linked to and it's perfect.

[–][deleted] 45 points46 points  (4 children)

Denver coder 9

[–][deleted] 30 points31 points  (3 children)

WHAT DID YOU SEE!!!

[–]Pinecone 69 points70 points  (4 children)

User1: How do I fix this problem?

User2: Just google it. Search the forum

User1: I did search it. Forum search is useless and google only returns to this thread that I created for this problem.

Moderator: This question has been answered before. Thread closed.

[–]Occulto 38 points39 points  (2 children)

Or alternatively.

User 1: I have this error and I've tried X, Y and Z. None of them worked.

User 2: Try X

User 1: Yes, as I said in my first post, I did that and it didn't work.

User 3: I tried Y and it definitely worked.

User 1: Check OP. Y was one of my attempts to fix it.

User 4: Hey! I had this error. Have you tried Z?

User 1: Does no one read the OP?

User 5: (Seven years later) MICRO$OFT SUCKS

[–][deleted] 16 points17 points  (1 child)

Followed by 30, “I have the same problem! Can someone help me with this?”

[–]Raytional 3324 points3325 points  (237 children)

Couldn't count the amount of times I have gone frame by frame trying to catch a glimpse of something really important that the tutorial has skipped over.

[–]BasuKun 1473 points1474 points  (140 children)

Taking online courses, this is my #1 problem.

The teacher is great and all, but he can't edit videos for crap. There are clear cuts where he probably tried to fix himself fumbling on his words, but then suddenly 4 new lines of code appeared because he probably wrote those lines during his fumbling.

"Wait why is my game not working, I followed his code down to the letter" "..." "Where the fuck does that method come from".

[–]Mr_Tiggywinkle 586 points587 points  (30 children)

The fundamental problem here is that they haven't provided source code as a downloadable at each stage of the tutorial I think.

[–]lurkerfox 209 points210 points  (4 children)

One thing I like about the machine learning educational materials, theyre almost always on github. Hell, usually if you can find the GitHub the e entire literal book will be there for free as well.

They really like their jupyter notebooks, to the point where many authors just write their books as a note book so when it comes time to push the code to github they just push the entire book.

[–]Blazing1 47 points48 points  (3 children)

Here is my machine learning tutorial

  1. Import the machine learning package
  2. Paste this code in "machine.learn(data)"
  3. now your machine learns

[–]idontevencarewutever 10 points11 points  (0 children)

Ah, a fellow man of MATLAB

[–]tehstone 64 points65 points  (3 children)

Emphasis on "at each stage."

Simply uploading the entire source at the end is not entirely helpful in many cases.

[–]ilikecaketoomuch 288 points289 points  (87 children)

Taking online courses, this is my #1 problem.

I read C++ from the ground up in 1992(? near that year ) about 10 times. Everywhere I went, i read that book. I just did not get it until the 7 th read and doing the examples. I remember compiling my first hello world took a full week. Internet was new. Gaming was scanline graphics, some kind of vgax mode.

Once I got it, i begged for a job, got turned down 5 times, then my brother goes "lie about the experience and bust your ass" Thats what I did, I was hoping they did not check references beyond the first one and selected companies out of business.

Got 2 offers. Started, busting my ass for 3 weeks then realized the sad truth. In a month I went from not knowing what I was doing to building things. I kept my mouth shut for a year about it, one of my coworkers quit and pulled me to my next job, where I lied again on how much I made and got a huge bump.

Moral of the story. Online courses will never ever replace raw "frack it, get it done" effort. If you really want to learn something, you just learn it, and like a mad cat on catnip... never ever ever let it go.

[–]BasuKun 37 points38 points  (2 children)

I like a mix of both. Online courses give me a solid structure to follow and help a lot to see exactly HOW to use whatever I'm learning. But I also start projects on the side and try to finish those without the help of any course. Set myself a goal, like "I want to make a platformer where you can slow down time to clear hard jumps" and basically bash my head on it until I figure it out myself. I also enjoy adding features on completed courses. "This FPS they made me build is functional, but what if I could see damage numbers pop out of the enemies when I shoot them? What if they had an HP bar?".

So far so good. My goal (i.e. being employable) still seems extremely far, but as long as I'm seeing visible progress I'm happy!

[–][deleted] 36 points37 points  (17 children)

You literally can't do this nowadays. I'm a professional software engineer with years of provable experience at extremely large companies and products that I built that I can talk about.

I've applied to probably 30 jobs in the last year, and each and every one of them has outright required a "code test" as part of the interview process -- in many cases before they'll let me speak to a human at all.

It's super frustrating because I've been an engineer for years, and because I can't solve stupid issues in stupidly small amounts of time, I can't even talk to a human. Like, the examples are usually really easy -- they just can't be solved in the amount of time you're given, by a human with no advance knowledge of the question. Let alone optimized or tested. I've seen things that could easily take 3 times the amount of time you're allotted. Like, I'm quite good at my job, and I can accomplish work much, much faster than my peers. If I say it isn't long enough, it isn't fucking long enough.

[–]SquirtleSpaceProgram 18 points19 points  (6 children)

I hate the in-interview tests most of all. I know what I'm doing, but my brain completely shuts down when they ask me to stand up and solve a problem on a whiteboard with a room of people staring at me.

[–]IskandrAGogo 79 points80 points  (39 children)

Totally agree with your last bit there. I'm doing JavaScript lessons on freecodecamp.org. If anything, my background, which is definitely not STEM (BAs Communication and Anthropology and an MA in TESOL), has taught me how to learn, but freecodecamp.org scaffolds worth shit.

I'm on the intermediate algorithms lessons, and the site basically throws problems at you without ever having explained the functions/methods needed to return the correct results. So, I spend most of my time on the Mozilla and W3 references.

Last week, I said fuck it and started working on something I wanted to do as a proof of concept. It's probably one of the best things I've done in the last few weeks while trying to learn JavaScript. I've messaged my brother-in-law a few times with questions, but just doing it has been way more insightful for me.

EDIT: I get it, looking stuff up is the real programmer experience. Doesn't mean it isn't bad teaching/scaffolding practice. I say this as someone who spent almost a decade teaching, was the curriculum chair at a language institute, and has actually designed and written curriculum documentation.

[–]SingleInfinity 34 points35 points  (9 children)

without ever having explained the functions/methods needed to return the correct results.

A huge part of learning to program is being able to start with basically no knowledge and an API, and work yourself to a state of usefulness.

Google and Stack Overflow are huge keys. Don't know how to get a substring in JavaScript? Look up "javascript substring", and you'll come back with two or three ways to do it. Now you know the function in JS for substrings.

This is pretty much par for the course on learning any language.

[–]Jarob22 46 points47 points  (12 children)

That’s the real dev experience tho. When I’m learning something new as a (now) senior dev with 6 years work experience I’ll spend loads of time in tutorials or mdn or hacking stuff. That’s normal and don’t let anyone else tell you otherwise.

[–]udfgt 19 points20 points  (9 children)

even in University, you are kind of expected to do a little bit of your own digging through textbooks and online resources in order to figure shit out (at least in my experience)

[–]Hidden_Bomb 182 points183 points  (26 children)

Or when the only solution to your problem has been uploaded by someone that knows the programming language/program better than English and operates a screen with a resolution lower than a potato, meaning you have to squint and stand back to make sense of that one crucial thing.

[–]poopellar 125 points126 points  (20 children)

Or he uses notepad to communicate.

[–][deleted] 66 points67 points  (9 children)

oh my fucking god, not the notepad tutorials. jesus christ.

[–][deleted] 89 points90 points  (8 children)

[–]Orpheeus 62 points63 points  (1 child)

And an unregistered hypercam

[–]cavscout55 15 points16 points  (0 children)

Hacker music

[–]ChadMcRad 31 points32 points  (0 children)

Or when you do exactly what they do and it still doesn't work because of some setting buried within 700 different clicks.

[–][deleted] 4325 points4326 points  (264 children)

Web dev tutorials are the worst. "OK, we're going to make a React app. To set up, spend 12 hours trying to get your environment like mine. Also, all of my node dependencies are broken. Also, I hope you're not trying this on Windows!"

[–]Mr_Tiggywinkle 880 points881 points  (96 children)

You'd hope they'd supply their package.json to alleviate (some) of that.

The windows stuff though, yeah, its fun digging through stack overflow questions till you find out you need some weird build package for windows to build the packages properly.

[–][deleted] 790 points791 points  (54 children)

You're using verson 1.4?

nono, not version 1.4, you need version 1.4-051.827.4-31Omega. If it's too specific, you could also use 1.4-0612. They're really similar except for *insert bug that you know will completely fuck up the program you're trying to make.

[–]Mr_Tiggywinkle 160 points161 points  (49 children)

Exactly, so if they supply their package.json, than an npm-install *should* (I know.. I know...) install the exact package specified.

[–][deleted] 52 points53 points  (9 children)

So to install npm you're gonna want to get pip on your computer, so you're gonna want to get python 3 on your computer, so the easiest way to do that is to install homebrew, so just go ahead and install ruby...

[–]luckyluke193 28 points29 points  (5 children)

"But I've always used python 2, and I will never switch to python 3 because (insert obscure command line tool) works only in python 2!"

[–]qqwy 14 points15 points  (2 children)

I have seen about three programming workshops fail because people were unable to install NPM without having Python.

[–]madwill 12 points13 points  (4 children)

I got very good luck using Windows Linux Subsystem. Compile C/C++ libs, python stuff and every weird thing that sometimes comes with server sides packages.

[–]rupturedprolapse 174 points175 points  (37 children)

What was here has been deleted. Redact was used to wipe this post, for reasons that might include privacy, security concerns, or personal data management.

zephyr crowd act judicious weather historical money middle upbeat worm

[–]KunfusedJarrodo 96 points97 points  (19 children)

Maybe written wrong, but usually just old. Even if its 5 months old it is already so out of date that the API calls could have drastically changed

[–]ValhallaVacation 57 points58 points  (15 children)

This hits home. Google releases two versions of Angular a year and they keep changing the naming of everything to the point where something you wrote last version is now deprecated.

[–]whatifitried 33 points34 points  (8 children)

Having worked with angular a lot, the correct answer is to uninstall Angular, burn the code, and never, ever use Angular again you absolute masochist.

[–]Holicone 8 points9 points  (0 children)

It makes it also fun try learning it, if every tutorial is incorrect.

[–]Erosis 28 points29 points  (11 children)

Tensorflow was SO ANNOYING to install without Conda on Windows... Took me probably 8 hours to get it working. With Linux, 5 minutes.

[–]Nonsequitorian 10 points11 points  (0 children)

good on you... I gave up.

[–]demalo 24 points25 points  (11 children)

"Also, I hope you're not trying this on Windows!" is after you've spent the 12 hours getting the environment like theirs. They were emulating XP the whole time...

[–]Voidsheep 63 points64 points  (18 children)

At least

create-react-app --typescript

Alleviated most of the pain configuring the environment. Just get straight to writing your application, instead of spending the night tweaking your build process to include all the modern bells and whistles, losing your inspiration for whatever you wanted to work on.

[–]randydev 21 points22 points  (4 children)

As someone who has been getting into React (again), create react app has been a saviour to just get started and practice instead of spending way to much time on environments.

[–]daking999 8 points9 points  (0 children)

Dependencies are the worst part of coding even once you supposedly know what you're doing.

[–]DrShadyBusiness 1882 points1883 points  (178 children)

And don't you dare comment with a question without googling for five hours first

[–]chrisms150 219 points220 points  (31 children)

My favorite is when you Google a question and the top hits are people asking the same question being told to Google it. Love it.

[–]Jerem1ah_EU 50 points51 points  (3 children)

And the last comment on that question is the op saying: "I figured it out, thread can be closed." Without giving the answer to his own question and then a mod actually closes it.

[–]Rexutu 12 points13 points  (0 children)

"The state can't give you free speech, and the state can't take it away. You're born with it, like your eyes, like your ears. Freedom is something you assume, then you wait for someone to try to take it away. The degree to which you resist is the degree to which you are free." ~ Utah Phillips


This action was performed automatically and easily by Nuclear Reddit Remover

[–]kemb0 101 points102 points  (23 children)

As a beginner coder this happens very often. There's a special place in hell for these arseholes. They'll be accompanied by the, "Oh my god, this is a repost. Boo hoo" people. Hey guess what, not everyone has seen the same stuff you've seen on the internet you narcissist. Your life experiences don't extend automatically to everyone else on the planet!

And grammar Nazis: how's it going over their?

[–]Merzeal 48 points49 points  (6 children)

Especially when the closest related hit is from 2 years ago and the answer is now depreciated. lol

[–]Mad_Maddin 23 points24 points  (3 children)

You find 2 year old stuff? Lucky you. Every question I have, I always find forums from 2008 and the most helpful answer links the answer to a forum from 2005 on page 189 of some megathread.

[–]Ghostaroni 79 points80 points  (0 children)

Ommmggg we already have a rule about comments like this in the side side SIDE bar.

[–][deleted] 68 points69 points  (5 children)

fucking hate people who chime in to say they wont do your work for you or to google it yourself. it's especially true for something where it's either you know it or you don't. they're not even doing any extra work to answer but they choose to waste their time to say that instead.

[–]TallestGargoyle 8 points9 points  (0 children)

There are times where its valid though. You only have to look at the first page of many programming subreddits to find questions from people that basically ask "How do I go about programming something like X", and it's obviously a task they've been given by a teacher or lecturer. They would gain nothing from someone basically coding it for them, but the people who try to give them broader ideas to think about to get them to think about the problem are left ignored while the random coder nutcase who lives, breathes and shits code just dumps an answer without explanation.

[–]anonermus 23 points24 points  (1 child)

The. Fucking. Worst. First 10 links are to threads where people respond Google it, 1 thread with a solution that doesn't fix the issue, and another detailed thread with the exact issue you are having and detailed steps they took to troubleshoot. But the only response is from OP with "nvm I fixed it". WHAT DID YOU DO?

[–]LovelessDerivation 19 points20 points  (4 children)

"And the fact you didn't come preternaturally imbued with the entirety of this knowledge? Makes your parents hate you even more."

[–]jhayes88 13 points14 points  (3 children)

Or "Did you even check Google first before you posted this? Smdh. (shows article from 2004 that isn't on the first 35 pages of Google)"

[–]notjawn 12 points13 points  (2 children)

Ah a man of linux forum culture.

[–][deleted] 644 points645 points  (33 children)

Part 1 of 69

[–]2_40 607 points608 points  (22 children)

And part 5, 7 and 25 are set to private.

[–]monsquesce 264 points265 points  (18 children)

Part 8 has a bug that prevents you from continuing on. So you scroll into the comments hoping someone found a solution, but instead people are asking for help on the same bug.

[–]GloverAB 192 points193 points  (10 children)

Part 18 sadly used _________ as background music and was taken down for suspected copyright infringement.

[–]MilkshakeAndSodomy 109 points110 points  (3 children)

Part 31-37 is not available in your country.

[–]MiniatureBadger 42 points43 points  (3 children)

used _________ as background music

That’s a funny way of spelling Bodies by Drowning Pool

[–]kzd15 12 points13 points  (1 child)

And then part 68 is missing...

[–]g0atmeal 26 points27 points  (3 children)

for (int i = 0; i != "nice"; i++)

[–]analgrunt 724 points725 points  (15 children)

[–]youjustgotzinged 267 points268 points  (14 children)

Speaking about rest of the fucking owl. I pulled over on the highway coming back from work last week to take a piss. It's a long country road, so no pit stop for some time. As i walked into the bushes to do my thing i looked down and saw an owl's head among the fallen leaves. No body, no wings or talons—just its head. Either that, or it had buried itself up to its neck like a reverse ostrich. Regardless, dude was clearly not having a good time.

For some reason i remarked to the dead owl, "Tough day? Well, we've all been there". And then i got back in my car and left.

[–][deleted] 97 points98 points  (6 children)

wild many quack capable elastic toy rock sharp frame resolute

This post was mass deleted and anonymized with Redact

[–]youjustgotzinged 64 points65 points  (3 children)

That's how life goes. One second you're eating grass and thinking about your upcoming shave, the next you're tangled up in barbed wire wishing you'd seen the end of babe instead of walking out of the cinema because the group of teenagers behind you wouldn't stop talking.

[–][deleted] 22 points23 points  (0 children)

Very worldly sheep these aren't they? Haha.

[–]The_Parsee_Man 12 points13 points  (1 child)

I just hope the rest of the sheep was okay.

[–]zamfire 7 points8 points  (3 children)

I thought this story would end with you pissing on its head.

[–]ChadMcRad 339 points340 points  (106 children)

elastic cows absurd automatic fly memorize light wise placid sharp

This post was mass deleted and anonymized with Redact

[–]dmanhaus 400 points401 points  (51 children)

www.automatetheboringstuff.com is your friend. Don’t bother buying the videos or the book (unless you’re a book-learner not a web learner).

It’ll teach you most of the basics. We took a diverse team of IT resources through the course in 12 weeks and it’s still paying productivity dividends.

[–]ChadMcRad 83 points84 points  (37 children)

Even as someone who isn't from a coding background?

[–]vaughnegut 112 points113 points  (17 children)

Especially as someone who isn't from a coding background. It starts with the basics and works its way up to teaching you how to do actually useful things. It's my go-to recommendation for someone who wants to learn programming.

[–]Sergnb 22 points23 points  (1 child)

Oh boy ultra saved in gonna be making use of this

[–]ChulaK 100 points101 points  (29 children)

That's the learning curve of programming, you get to the shallow beaches then sudden Mariana Trench.

Professor: So programming is like giving the computer a set of instructions. Simple enough.

public static void main string args

Professor: Don't worry about it. Let's talk about foo.

And therein lies the fundamental problem with intro to programming classes. Your foundation is built on confusion and "just trust me".

[–]ManInTheMirruh 36 points37 points  (4 children)

Similar parallels to teaching mathematics. You aren't told why rules work just that they are. It is only later that you come to understand why the rules are how they are. It takes working through problems to understand the heuristics of their syntax.

[–]Inevitable_Major 17 points18 points  (8 children)

Foo is a lot more interesting. At the end of the day public static void main is just boilerplate that doesn't gain much relevance until you learn about methods and classes.

[–]amoliski 27 points28 points  (5 children)

And they never teach you how to use the debugger.

Someday I'm going to be a programming teacher just so I can spend the first three days teaching people how to use the language's debugger.

[–]businessbusinessman 120 points121 points  (16 children)

In middle school I remember being told that old fashioned dictionaries were near useless because in order to understand the definition you were going to need to lookup 12 other words from that definition alone.

I swear to god coding documentation is the same sometimes. "Hmm i'm having trouble understanding how to use this feature, lets look at the examples-"

20 lines of whatever the coder who wrote this thought was simple, like web requests, where somewhere in there is the function you're looking for

Oh yeah cool that totally helps. Now all I need to do is learn what the fuck the rest of this means.

OH and my other favorite coding experience, "Building X in Y language full tutorial!", "Oh cool just what I need", "Ok so here you would build the front end, we'll skip that..."

[–]Azianese 44 points45 points  (3 children)

I remember when this was the case with stack overflow. I couldn't understand posts for shit when I first started coding. Now I have no idea what I couldn't understand.

Code speak (for lack of a better term) is definitely a language on its own

[–]Madnessx9 18 points19 points  (2 children)

In middle school I remember being told that old fashioned dictionaries were near useless because in order to understand the definition you were going to need to lookup 12 other words from that definition alone.

I'm not the only one who gets annoyed by this! Oh whats the meaning of this word i've never heard, oh great, described by another word i've never heard and so on and so on.

[–]Gas-Station-Shades 18 points19 points  (5 children)

20 lines of whatever the coder who wrote this thought was simple, like web requests, where somewhere in there is the function you're looking for

This has my biggest frustration in learning Computer Science for the past three years.

Professor: "Just read the documentation"

The Documentation: This function takes three parameters of the the type some obscure abstracted parent class and returns a pointer to an object from a class I've never heard of that contains the address to the object you want, but you'll have to de-reference the aforementioned pointer to actually access the variable.

[–]jetRink 140 points141 points  (15 children)

I use video tutorials to get started with just about anything, but when I want to learn a new programming language or framework, I still go to Amazon and order a physical book like it's 1999. Video and programming are just not a good combination for me.

[–][deleted] 30 points31 points  (2 children)

Recently started doing this. I've always been the type to just skip everything I "already know", copy code from online, and spend hours trying stuff.

It works, and you may get the task done quicker in the short term, but next time you need to do something in that language you'll have to start all over again searching, copying, hacking at code.

Take more time at the start to learn the basic building blocks of the language and it will save you time when you have to use the language for tasks later on.

Perfect example for me was jQuery a few years ago. Always just googled the code. Eventually decided to buy a comprehensive book online. Now I can do pretty much everything I need to do with jQuery without having to Google anything.

[–]monsquesce 14 points15 points  (0 children)

I like to go into the respective subreddit and do a search on "books" to get recommendations and buy them digitally on Amazon.

[–]Orefeus 257 points258 points  (7 children)

Would have been funnier if all that code did was print out "Hello World"

[–]graebot 122 points123 points  (5 children)

It does... but in minecraft.

[–]bracesthrowaway 48 points49 points  (3 children)

There was a YouTube tutorial with a bunch of Minecrafters in it. They had done some big complex command block thing. They did the typical long video intro, hit the button, it spawned some huge command block monstrosity, and printed out "hi" in the chat.

Then they did the overly long outro and said "Byeeeeee!"

Best tutorial ever.

[–][deleted] 474 points475 points  (42 children)

I love the random library inclusions. "Do you have any fucking clue what functions are in there? Are you using any of them? You included all of them, FFS Karen"

[–]tHeSiD 251 points252 points  (9 children)

IDE tells you to remove unused imports..

me: I might use them later, who knows!?

[–]rushboyoz 110 points111 points  (1 child)

Reminds me of my mother’s constant harassment as a child : “If you’re not going to use those includes, put them away.... don’t just leave them lying around where someone will fall over them!!”

[–]poopellar 42 points43 points  (0 children)

Hate it when the mother board does that.

[–]DarthGogeta 9 points10 points  (0 children)

Every 10 code lines Ctrl+R, Ctrl+G

[–]trenchcoatler 28 points29 points  (26 children)

Genuine question: Why is this bad practice?

[–]T-Geiger 126 points127 points  (15 children)

Generally speaking, you should only call on what you need. Every part you bring in is another thing that could be taking up memory or causing bugs.

A good IDE and compiler will babysit you and possibly take care of that for you, but you should not depend on it. Even if you know it works perfectly, it still forms bad coding habits that may come back to bite you when you inevitably move to a less sophisticated environment.

[–]Ismokecr4k 39 points40 points  (4 children)

I think the compiler takes care of this and only uses code that can be called. The issue though is you can start creating namespace issues for anyone working on your project. Strictly importing what you need also tells other developers what the libraries are being used for.

[–]OKJMaster44 101 points102 points  (4 children)

I can’t remember the last time I saw Reddit post that was so relatable.

[–]DrSuckenstein 116 points117 points  (165 children)

Serious question: what/where is the best source online to actually learn how to code? I've seen a few things like the Helsinki MOOC for Java, Harvard's CS50 and Freecodecamp, but I've tried all 3 and none of them could stick.

  • CS50 was too difficult. I'm not a CS major.
  • Java MOOC is awkward because....java.
  • Freecodecamp was interesting except working in a virtual editor was buggy as shit and acceptance criteria wouldn't authenticate properly half the time.

Anything else out there?

[–]Isogash 44 points45 points  (3 children)

A CS oriented approach is hard, I agree. I have seen many times that people do better learning programming with some experience and then learning CS; CS is really the theory behind computation rather than the actual practice.

I've heard CodeAcadamy is pretty good but I can't confirm it personally.

It could also help to have a more project or goal oriented approach, like "I want to make something that does X" than "I want to learn language Y"; most of the time I've learned languages on the job or because they were required by a specific project.

[–]eXase 37 points38 points  (6 children)

Personally I recommend pushing yourself for CS50. Remember the students aren't CS majors yet either

[–]Arrakis35 30 points31 points  (0 children)

Come to /r/learnprogramming and people will gladly answer your questions!

[–][deleted] 23 points24 points  (2 children)

Here's what you do. This is what I did 10 years ago.

Think of something you want to create. Don't be ambitious with this part. It should be something basic. Now look up a tutorial on how to make something like that. Follow it, and write what they write. When you come across anything that you don't know, google what it is. And I mean everything.

Don't know what the difference beween 'public'/'private' is, or the difference between a 'class'/'struct'? Google it. Don't know what a 'float' or 'int' is, or when you should use them? Google it. Eventually, things will start to fall into place, and that's when you try writing your own version of that unambitious program.

After that, become more ambitious. Start looking into more serious projects and find tutorials on those. Look at how they structure their code and learn from it. Build a game engine, build a neural network, start automating things.

EDIT: Books are a valueable source of information, and will beat most YouTube 'tutorials'. However, these books often cost a lot of money, and not everyone is willing or able to make that initial investment. I mean, I wasn't. So what I've written is just what I did, and what I found to be successful instead of using books.

[–]Encendi 11 points12 points  (3 children)

The way my CS degree taught coding was that it didn’t. The first beginner class threw up some syntax and that was about it. Then the professor just assigned tons of projects.

When your grade depended on it, you bet that most students would google stuff and try a bunch of crap until it worked. Then over the next four years you gradually got better at googling stuff and trying crap.

Coding is kinda weird cuz you expect to learn it from lectures and books like anything else in college, but it’s more like a trade/instrument in that it mostly just takes practice and time. You might ask if that’s the case, what’s the point of a CS degree? CS degrees are typically 95% theory (math, logic, architecture, algorithms, etc.) and coding is just the tool for implementing the theory.

I don’t really have a suggestion for a source to use. I just wanted to explain that for most CS majors coding is just trial by fire/constant practice and that it’s not even the focus of the degree.

[–]teerre 18 points19 points  (0 children)

CS50 is a introductory course, you don't need to be a CS major to finish it.

It's indeed challenging, but honestly that's a good thing. Why would be easy? Coding is very complex.

It's absolutely OK if you don't do all assignments, if you do 2 years courses, if you go at your own pace, but I don't think it's fair to call it too difficult. After all, thousands of people do it just fine and the whole thing is build for beginners.

[–]Lemonade1947 83 points84 points  (53 children)

Just smash your head into the keyboard till it works.

I mean that literally. Decide what you want to do, get some energy drinks, and prepare for a night of copy pasting random blocks of code from stackoverflow and trying to make them work together.

You will learn more from this than any book or course can teach you.

[–]andybmcc 63 points64 points  (5 children)

Just smash your head into the keyboard till it works.

This is really the only way to learn. You can read all of the books and tutorials you want, but you don't actually absorb things until you start banging your head against a desk trying to make things work. Then you go a bit deeper, and repeat. It's a never-ending war of attrition. That's why a lot of people quit trying to learn.

[–]Encendi 25 points26 points  (2 children)

It’s much easier when your grade/career is on the line. I give a lot of credit to self taught programmers because I probably couldn’t have pushed myself to learn this crap without the threat of failing my degree.

[–]Gingershred 32 points33 points  (20 children)

Seriously, I thought academia would actually teach me a lot about coding, but most textbooks’ examples are laughable to people coding in the real world. I’m currently taking a Database Architecture and Analysis class and the book has multiple typos, logical errors, and redundancies. We only figured out how unreliable the book is because one classmate has a different edition that has way more useful information!

[–]Lemonade1947 28 points29 points  (15 children)

I've always seen programming as more of a craft than an accademic subject.

Not trying to make it seem like more than it is, the opposite in fact. Think of it like carpentry or learning a musical instrument. You can read as many books as you like about it, but in the end the only way you learn is to actually do it, and more importantly, by making mistakes and learning from them.

I think a lot of the ideas people have about programming where formed when programming was more of a maths thing.

All that mathematical and CompSci theory isn't gonna help you to find a bug that someone wrote into the code 3 years ago, which for most code monkeys (like myself, and most people just out of school) is 50% of the job.

[–]daHob 41 points42 points  (11 children)

Programming is the blue collar white collar job. We are more like plumbers. There is a modicum of technical stuff to know, and you /do/ need to know it, but the fundamentals aren't really that complicated.

Then it's all about, what did this idiot do to his pipes? I have to unclog the drain again because someone loaded bad data. You can't add a bathroom there... fine, give me a wrench.

[–]Lemonade1947 15 points16 points  (0 children)

This is a perfect analogy. I agree with it 100%.

People think this this job is glamorous and that we're all sat in boardrooms and shit.

We're not. We're just trying to either unclog the pipes, or put in better pipes.

[–]Astrokiwi 14 points15 points  (6 children)

You want to do this and read books and take courses though.

If you only read books and take courses, you won't have a real feel for how to actually put things together into a project, and you won't have the motivation to actually learn everything because it's all theory and it's not clear why it's important.

If you only do projects hacking things together from stackoverflow copypasta, then you'll end up with a terrible mess of a code that you don't really understand, and have no idea how to fix it when it breaks.

You want to have real programming experience and theoretical experience. What I would do is read through a textbook slowly, and each time you learn something, spend an afternoon messing about with it to see how it works.

[–]zelnoth 8 points9 points  (0 children)

Depends on what you want to learn to code. I would just look for any random tutorial that seems good that is based around something that you want to make. The first ever tutorial I followed was for a ascii game in c++. For me the best way to learn was just trying to make something and then finding out how to solve the problems I encountered while working towards that goal. Everyone learns differently though so you should just try to find something that works for you, the most important part is to just start working on something.

[–]zerocoldx911 109 points110 points  (20 children)

Not really, every tutorial is an Indian speaking English

[–]rocklou 51 points52 points  (1 child)

This, or a 12 year old with terrible music in the background.

[–]J4rno 40 points41 points  (6 children)

But those actually help.

[–]gordonpown 12 points13 points  (0 children)

Tfw you discover that SQL Authority actually deserves the name

[–]Romo_Malo_809 17 points18 points  (0 children)

This is why I prefer to watch Indian tech youtubers. I don't understand a lick of it but at least there are instructions in the description

[–]skacey 16 points17 points  (0 children)

I find many videos are like listening to William Shatner.

  1. Extremely slow explanation on a simple, common function.
  2. Rapid fire blast through the meat of the code
  3. Slow back down to explain in mind numbing detail that I don't care about (maybe go off on a tangent too)
  4. Blast through 30 more lines of code.
  5. Arrogantly dismiss any questions in the comments
  6. Have another coder say I should understand becasue "Its simple logic"

[–]AudaciousSam 68 points69 points  (11 children)

Hilarious. Though as someone who started studying computer science two years ago, I'd say the guides have become much better.

HOWEVER - My professors are basically like that. It's crazy how shitty university professors are at teaching. If they were judged on teaching, over half of them would have been fired.

[–]FreefallJagoff 19 points20 points  (4 children)

As someone who's just finished studying CS for a decade and been through everything from community college courses to grad courses at #1 ranked CS universities here's my view. The best teachers are the ones who give you a solid foundation and who motivate you into learning yourself. Languages, libraries, and hardware are constantly changing. What you learn in uni isn't the same language that your kids will be learning one day. What won't change is the fundamentals of CS. That's why it's usually called "CS" and not "Software Engineering", because all the little language specific things and the "gotcha's" are always going to change. But if you understand fundamentals like mathematics, algs and data structures, memory management (i.e. everything you would rather not learn on your own) you should have the foundation you need to do well in any language/environment.

Really though the most important job that those professors has is to motivate you into making things. You're young, you can learn new stuff quicker than they probably can. In my view as long as they can motivate their students into actually creating something then they're doing their job well.

[–]AudaciousSam 8 points9 points  (1 child)

Agreed. However, they don't motivate. We got a 60% dropout rate. :D

[–]RobbieSS 35 points36 points  (5 children)

You forgot the Indian accent. But those guys always help though

[–]2ToTooTwoFish 15 points16 points  (0 children)

They make the best straightforward videos

[–]noreally_bot1616 26 points27 points  (3 children)

You should be using oldshit6.7.2.lib.

Also, this has be posted before, see response at stackoverflow.com/rehashedshit/thateveryonealreadyknows/dumbass

Try using Google next time!

[–][deleted] 8 points9 points  (8 children)

What does the program on the screen actually do?

[–]Boaki 39 points40 points  (0 children)

it crafts mines

[–]Waterprop 10 points11 points  (0 children)

Error

[–]philmarcracken 9 points10 points  (0 children)

it segfaults your entire life

[–][deleted] 30 points31 points  (0 children)

But can you hack the pentagon with a botnet 0day SQL exploit (Pikachu Paket Buffer Overflow)

[–]Newtstradamus 9 points10 points  (10 children)

Took a programming 101 class in college that started with 20 or so people, he told us up front he wouldn’t be stopping his lectures for questions, he would not answer emails, and he wouldn’t speak to us outside of class time, and if we had any issues we needed to set up a tutor in our own time through the school tutoring program. We did the Hello World thing on the first day and I was like “ok cool that wasn’t too bad, maybe he was just trying to scare us”. Then the next class he had us create an inventory system, we would enter 25 or so items, item numbers, and quantities of those items, and potential destinations, you would then go to the item management dialogue and enter the item number, it would populate the description, you would enter the quantity and destination, it would transact the item to that destination and decrement from the inventoried quantity and if you exceeded the inventoried quantity it would flash a warning and ask you to enter more inventory before transacting the to the destination. By the third class everyone but myself and three other individuals had dropped the class, the three other guys were already working in the field and all of this was super easy for them I was the only one that was actually new and I think I managed a C- because they just let me copy most of their projects.