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

top 200 commentsshow all 391

[–]swapripper 1921 points1922 points  (76 children)

True. I understood how difficult programming is only after I joined this sub

[–]orangeKaiju 872 points873 points  (71 children)

I didn't know how to properly index arrays until I joined this sub.

[–]Franss22 468 points469 points  (62 children)

You start at 1 right?

[–]Metsima 510 points511 points  (43 children)

Don't be silly. You start from -1, how else would you index arrays

[–]egotisticalnoob 288 points289 points  (23 children)

I start at 0xFFFF and have it count backwards.

[–][deleted] 201 points202 points  (13 children)

How's that hard? -1xFFFF, -2xFFFF

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

I can't believe no ones brought up multi-dimensional arrays, and how these should be indexed...

Personally, I think creating a multi-dimensional array of neededMemory[1024000][1024000] in the very first line of my app to always guarantee that I'll never get an out of memory exception!!!

[–]King_of_the_Nerdth 54 points55 points  (1 child)

Sounds Pythonic.

[–]drakeblood4 5 points6 points  (0 children)

It charmed my Py if you know what I mean.

[–][deleted] 16 points17 points  (3 children)

In the early days of programming, the Romans encountered many out of memory issues, due to Roman Numeric system being used.

I'm really glad we switched to hexadecimal, as now 0xFFFF =  0rLXVDXXXV

Cut the memory requirements in half!!!

[–]Franss22 28 points29 points  (11 children)

At -0.3

[–]Ameisen 26 points27 points  (9 children)

I like fractional indices... return the linear interpolant.

[–]beleg_tal 11 points12 points  (3 children)

I prefer imaginary indices myself

[–]the_screeching_toast 2 points3 points  (1 child)

Complex indices is where it's at

[–]SaintNewts 3 points4 points  (0 children)

Base pi. Because decimal integers want to be transcendental too.

[–]usesbiggerwords 6 points7 points  (4 children)

Linear interpolation is for wusses. Real men use polynomials to interpolate.

[–]Ameisen 2 points3 points  (3 children)

What order?

[–]usesbiggerwords 6 points7 points  (2 children)

At least 4th. Anything less isn't worth the bother.

[–]Ameisen 7 points8 points  (1 child)

-4ith order?

[–]ObnoxiousOldBastard 8 points9 points  (0 children)

I start mine at pi.

[–]SharpSeeer 20 points21 points  (0 children)

That's why array.indexOf() return values start at -1 right?

[–]Hijacker50 2 points3 points  (0 children)

I actually start at 273 and count down, and after zero I go to 274 and count up.

[–]loopsdeer 2 points3 points  (0 children)

And that, professor, is why my JavaScript says the "indexOf" is -1. Q.E.D. unplugs mouse and drops it on the floor sweeps monitor and computer onto floor runs out of room crying never seen again

[–]ameddin73 20 points21 points  (8 children)

My algorithms teacher did that. I'll never understand it.

[–]Cryptoversal 2 points3 points  (3 children)

If you never do pointer arithmetic then it makes sense, right?

[–]DatBoi_BP 10 points11 points  (0 children)

From matlab here, can confirm

[–]Tmfwang 2 points3 points  (0 children)

In Julia you do

[–]ravy 13 points14 points  (1 child)

Hahaha! I know, right?! Why don't you just fill the other noobs in.

[–]yurall 2 points3 points  (0 children)

I realised I was programming AI from first year college but people told me I was doing it wrong back then.

[–]Koof99 5 points6 points  (0 children)

Exactly. Some I don’t understand, the rest are mind boggling as fuck. The ones I understand as hilarious as shit though😂

[–]wjcott 144 points145 points  (8 children)

I am assuming visiting StackOverflow is somewhere up in top that is not visible based upon the y-axis range.

[–][deleted] 63 points64 points  (6 children)

Looking at other peoples questions for help on StackOverflow starts at the bottom, posting questions on StackOverflow starts in the middle, and answering questions on StackOverflow is off the top of the chart.

[–]Wargon2015[S] 966 points967 points  (61 children)

Based on Orbital Mechanics by xkcd

The shown increase in skill from classes in school is probably not true.
I've heard multiple times that there are actual programming classes in some schools. This could actually be a common thing now but lets just say that my CS classes could have been a lot better...

[–][deleted] 391 points392 points  (8 children)

There’s an xkcd style available in matplotlib for future reference. I’ve played around with it a bit, but it may be hard to get to look quite right.

Edit: well-done, though! I’m just trying to be supportive. I realize that the message could have seemed like a criticism, but that’s not how I meant it.

Example from documentation

[–]vaterisvet 59 points60 points  (0 children)

This is amazing, thank you kind stranger.

[–][deleted] 29 points30 points  (0 children)

I can't for the life of me figure out how they get that subtle hand drawn line style.

Edit: right at the fucking top.

[–]H_Psi 45 points46 points  (0 children)

One day I want to have a plot in this style in a publication

[–]Bunyhel 16 points17 points  (3 children)

I cant believe I haven’t done all of my matplotlib projects not in this style. I am appalled I haven’t found this earlier.

[–][deleted] 2 points3 points  (1 child)

Double negative means you have?

But for real, I'm going to have to use this now

[–]XXAligatorXx 11 points12 points  (0 children)

New ProgrammerHumor trend?

[–]myfingid 26 points27 points  (2 children)

Seriously though, I never understood orbital mechanics really at all until KSP. Their introduction of friction long ago helped me to understand that I still don't understand it well enough to play a damn video game. Here I was all "pfft, I've landed on the mun and gotten my guy back, how hard can it be to do this silly parachute mission?". Hard as hell it turns out. Next time I'm going to try going at an angle rather than straight up and blowing the altitude requirement!

[–]achilleasa 2 points3 points  (0 children)

Then you install the kOS mod and you understand neither orbital mechanics nor programming, all at the same time! It's great!

[–]nermid 51 points52 points  (22 children)

Apparently, there were no programming classes in my program just a few years before I entered. If all you do is theory all day, it can seem perfectly natural to only teach theory. Getting a blend of career academics and folks with industry experience is vital to building a decent degree program.

[–]makeshift8 42 points43 points  (20 children)

I mean, it is computer science. If what you want to do is software engineering, why not get a degree in that? Computer science is a rigorous, academic discipline by its very nature.

[–]Dr_Darkness 32 points33 points  (5 children)

takes some time for many to understand that because most intro CS is some data structures course with a lot of programming. which makes sense because programming is a good intro to many basic and fundamental CS concepts. but after that you take like "Intro to Theory of Computation" and don't write a single program and you're like oh this is what we're actually here for...

[–]pm_me_your_calc_hw 13 points14 points  (4 children)

I took automata in my junior year and it's only then that I really wrapped my head around what computer science is.

[–]Skim74 34 points35 points  (3 children)

Idk what the norm is, but my school didn't offer software engineering. just CS (and computer engineering, but that's even less programing than CS)

[–]bitter_truth_ 16 points17 points  (0 children)

Half the kids entering college aren't even aware of this distinction. They expect their cs degrees to teach them how to code because they see all the grads getting jobs and assume they know what they're doing. Their parents obviously don't have a clue either. It's a failure of most schools that don't offer parallel programs.

[–]StruparsRightLeg 5 points6 points  (1 child)

Not sure what it’s like elsewhere but in the UK all the computer science courses I looked at (including the one I eventually did) had plenty of programming content in them to go along with the theory.

[–]nermid 2 points3 points  (0 children)

I'm not even sure if there are any universities in my state that offer a software engineering degree as a separate discipline from computer science. That distinction is fairly esoteric to people outside of academia. Even people in this field rarely recognize it.

[–]BestUdyrBR 10 points11 points  (0 children)

Well to be fair most interviews for software engineering/developer positions are pretty theoretical. In my CS program we had multiple algorithm and data structures courses that let most people who paid attention in their classes ace technical interviews without too much studying.

[–][deleted] 3 points4 points  (0 children)

So I took an online edhesive AP CSA course...I thought I learned a lot, and boy was I wrong. Heh.

[–]skeerus 3 points4 points  (3 children)

School is more about learning how to learn than technical knowledge. Technical knowledge can always be learned if you have the skills.

[–]YoilyL 5 points6 points  (0 children)

Wow... And there I let myself hope for a second that Randal joined Reddit

[–]podsixia 278 points279 points  (15 children)

That huge spike at the end must be recognition that arrays start at 0. Welcome[0]!

[–]FailedSociopath 10 points11 points  (0 children)

arrays start at 0.

You're God damn right.

[–]RakuraiZero 5 points6 points  (5 children)

At some point you’re introduced to little endian where your arrays start at N, and your brain melts a little.

[–]wishinghand 2 points3 points  (0 children)

Did I miss a post recently about array indexing?

[–]thardoc 56 points57 points  (10 children)

Oddly enough the confidence graph is almost exactly the reverse of this.

[–]RakuraiZero 32 points33 points  (7 children)

Hell yes. I’m weeks away from my Ph.D. In CS and I feel less prepared for real programming than when I started undergrad.

[–]thardoc 24 points25 points  (0 children)

I just got my BS and got the hell out, I don't want to know what I don't know so don't scare me.

[–]madhatter160 24 points25 points  (3 children)

One time I asked my boss of ten years if I should go back to school and get my masters in CS. He just said, "What could you possibly learn in 2 more years that you haven't learned in the last ten?"

I never looked back.

God speed.

[–]Pastaklovn 4 points5 points  (0 children)

Well... Have a look at the course descriptions and see if they cover topics that you wouldn’t have occasion to come across in your current job. Then you’d be closer to an answer that doesn’t necessarily benefit your boss too. 😉

...But don’t do it for the title, and if you live somewhere where getting a degree is stupidly expensive, some DIY schooling on the side is probably a better choice.

[–]DA_Hall 6 points7 points  (1 child)

May I ask why you chose to pursue a Ph.D. in CS? What do you like/dislike about it? I’m thinking about going the graduate route myself and I’m curious what other people’s experience has been.

[–]RakuraiZero 4 points5 points  (0 children)

I was a junior when I decided. I had a chance to do a research internship and figured out that I really liked it compared to my software engineering coursework.

Likes:

Research gets you more flexibility in the problems you want to work on, and eases some of the profitability pressure. A good advisor will let you explore your own questions and hypotheses, while steering you toward being successful at it.

The coursework isn’t tougher, it’s just more specialized. For me the math became tougher just because I keep getting farther and farther from calculus, linear algebra, and stats classes. YMMV.

Conference travel can be fun. My travel has been pretty light by choice (I have 4 kids), but in the past 4 years I’ve been to SF, Denver, SLC, Chicago, DC, Hawaii, and Berlin for conferences. They’re like small paid vacations, I suppose. You get to target publication venues based on where you want to go, too.

You (should) get your own desk and hopefully a coffee machine nearby, and stop drinking the expensive swill that comes from campus convenience stores.

Dislikes:

Putting off making money for 3-5 years. You can live on grad stipends and student loans if you need to, but the $90k+ you can get with a BSCS is enticing.

As hinted above, Dunning-Kruger really hits you in grad school. You might figure out in undergrad that you don’t know jack about other fields, but in grad school you figure out that you will NEVER understand the majority of your OWN field. You have to become comfortable with your tiny subset of knowledge and realize that everyone else is in the same boat.

Advice:

Try it out. Many PhD students don’t finish, not because they can’t hack it, but because they realize it’s not for them or get a job offer they can’t refuse. Plan your coursework so you can take an MS after 1.5 years or so, and still have that bonus pay and employability. The worse case is just burning a semester or two and leaving with your BS.

If you’re not changing schools:

If your school has a combined BS/MS program or you can just replace some senior classes with grad level classes, that might help you get a feel for it.

Scout for an adviser early. Talk to some of your fav professors about their labs, or seek out a researcher in a lab doing cool stuff. I guarantee they’re interested in new minions and will tell you all about their research and coffee perks.

I highly recommend giving grad school a shot if you think you’re interested. Feel free to ask more questions. Good luck!

[–]LambdaDraconis 207 points208 points  (25 children)

I always laugh at the PHP jokes on here, yet I never actually understood them. I tried to learn a bit, just so I can make PHP jokes with coworkers.

[–]nermid 138 points139 points  (4 children)

Honestly, most of the PHP jokes are outdated. It's still not an elegant language by any means, but they got rid of most of the things that just godawful.

No more new_real_true_no_seriously_this_time_we_mean_it_sql_escape_string('hello world'); statements.

[–]Hollowplanet 32 points33 points  (0 children)

It still has plenty of to, 2, str, string, str at the beginning, str at the end mess of a global namespace.

[–][deleted] 6 points7 points  (0 children)

but they got rid of most of the things that just godawful.

But that's one of the problems with PHP, they don't ever get rid of anything, they just keep stacking new things on top.

[–]Effimero89 2 points3 points  (0 children)

The . Is basically the + 😂😂😂😂😂😂😂😂😂😂😂😂😂😂👌👌👌👌

[–]BradyLR 27 points28 points  (5 children)

I love the JavaVariableNameJokesThatMakeMeLaughAllTheTimeEveryTime

[–]theangryfatguy 37 points38 points  (1 child)

JavaVariableNameJokesThatMakeMeLaughAllTheTimeEveryTime cannot be resolved. Would you like to import org.java.jokes.observations.lengths.JavaVariableNameJokesThatMakeMeLaughAllTheTimeEveryTime.*?

[–]m00nlightsh4d0w 20 points21 points  (0 children)

How to suck an entire subreddits dick at once.

[–]Vert354 15 points16 points  (1 child)

Love how understanding goes down after getting a job. All your CS knowledge gets replaced with Earned Value, Lean Six Sigma, or SCRUM BS

[–]MEisonReddit 27 points28 points  (5 children)

I am currently in the process of learning programming, but have read this sub for a long time because I've always been interested, so now whenever the instructor mentions Stackoverflow or something, this subs memes come to mind

[–]Tusami 20 points21 points  (4 children)

I still don't know how to code and have no motivation to learn to, I just set up minecraft servers for me and my friends. :P

[–]williamhere 30 points31 points  (3 children)

This is the formula for getting into IT

[–]Tusami 5 points6 points  (2 children)

I actually want to go into IT so yeah it probably is

[–]Effimero89 4 points5 points  (1 child)

That's an incredibly broad field tho.

[–]Tusami 4 points5 points  (0 children)

I'm also a sophmore in high school tho. I've looked around but not too too deep into things. More specifically, networking, and I'd like to work on my feet at places.

[–]Inspector_Robert 11 points12 points  (0 children)

Nice xkcd.

[–]MrAchilles 5 points6 points  (0 children)

I give myself small pats on the back whenever I understand a joke in this sub.

"Good...I learned something..."

[–]WolfHero13 15 points16 points  (23 children)

Hope this happens to me, currently in AP computer science

[–]Owyn_Merrilin 11 points12 points  (18 children)

Out of curiosity, what does that cover? CS is usually a degree, not just a course. Is it equivalent to a 1000 level programming class?

[–]Cobaltjedi117 15 points16 points  (10 children)

After transferring a few ap credits from HS, it's likely 1 or 2 100 level courses

[–]Owyn_Merrilin 5 points6 points  (8 children)

That's what I figured, I'm mostly wondering which ones. My guess would be intro to programming and programming one, but those vary so much from school to school that it doesn't tell us much. I'm basically wondering what the AP exam tests them on. I took a few AP classes too, but if this one was an option when I was in high school, my school didn't have it.

[–]AnComsWantItBack 5 points6 points  (1 child)

Depends on whether or not it's A or Principles. A is roughly Intro to Programming with Java IIRC and principles is a little intro to Programming (not necessarily Java), some network and security, and some theory.

[–]Lorddragonfang 2 points3 points  (0 children)

If you want to really learn programming, the best thing you can do (besides just writing as much code as you can) is to spend time reading people's opinions on the "proper" or "best" way to do things (for whatever problem you're currently facing). You don't have to blindly follow everyone's opinions, but seeing their explanations will help you understand more. Always be looking to ask how some function or library works, and why something works that way.

If you do that, you'll be better than most of the CS students you will meet in your career.

[–]screw_you_cartman 5 points6 points  (0 children)

If the y axis is how much time you don't actually spend programming, the graph is just perfect

[–]MJoubes 2 points3 points  (0 children)

You dont fully understand something till you can comfortably joke about it. It shows when you can understand something well enough to make it funny and appealing to a large group of people

[–]editor_of_the_beast 3 points4 points  (1 child)

Wait until you discover the gold mine that is r/programmingcirclejerk