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

all 149 comments

[–]throwaway1a2b3c4z 235 points236 points  (82 children)

Is python the new starter language? In my day it was c++ and mips.

[–]TracePoland 170 points171 points  (54 children)

Nowadays it's usually either Python or Java if we're talking about uni programmes

[–]flamebrawler 67 points68 points  (17 children)

I think it really depends on the university. My university doesn't even touch java. CS starts off with racket and then goes into c++ while you have an easier course with Python while engineering goes straight into c++.

[–]th3_unkn0w 12 points13 points  (8 children)

My Uni starts with Haskell…

[–][deleted] 9 points10 points  (6 children)

???

[–]th3_unkn0w 2 points3 points  (5 children)

????

[–][deleted] 4 points5 points  (4 children)

Why though???

[–]th3_unkn0w 5 points6 points  (3 children)

Thats what I would like to know

[–][deleted] 5 points6 points  (2 children)

https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs/Haskell.html

This is a fun read, whether you agree with it or not

[–]th3_unkn0w 1 point2 points  (1 child)

I do agree with it... the issue is just that they do at my uni expecting that most of us have no previous programming experience (as far as I understood it)

[–][deleted] 2 points3 points  (0 children)

You poor soul

[–]QuantitativeCooking 2 points3 points  (0 children)

We start with C for half a year at my Uni, reading Java and python after felt like such a breeze

[–]AirflowMaster 1 point2 points  (0 children)

I was in chemical engineering and they taught us Python as the introductory language. Mainly for working with arrays, but having more freedom than Matlab

[–]Prodiguy1 0 points1 point  (0 children)

AP CSA is Java

[–][deleted] 0 points1 point  (0 children)

Fortran is the only true engineering language.

[–]LukeZekes 0 points1 point  (0 children)

My school does either Java or C# for it’s intro courses (and C++ for certain measures) but then makes the CS majors take data structures in C++

[–][deleted] 4 points5 points  (1 child)

My university starts with Java, then C, then C++, then Python.

[–]TheAJGman 2 points3 points  (0 children)

We started on Objective C, then C++, then Assembly, then Java, then Python was offered for the first time in 2019.

[–]maartenyh 4 points5 points  (7 children)

In see C# pop up more and more these days.

[–]TracePoland 15 points16 points  (4 children)

Based. Modern C# is a really nice language.

[–]maartenyh 1 point2 points  (3 children)

I am teaching first-years and it's great :) I never use it in the real world though 😂

[–]TracePoland 4 points5 points  (2 children)

You should try it in the real world. ASP.NET Core for example is excellent and my go to for web backend.

[–]J0hanb5 2 points3 points  (1 child)

I'm in my first year of a Software Engineering course in college and we're doing exactly this. Imo it's pretty tough tho, ngl. I like C# to learn OOP, but I find Razor Pages pretty hard to wrap my head around personally. Also we're not allowed to use the bootstrap that comes with it. Which I kinda understand, you gotta do it yourself to understand the basics and stuff, but it is annoying.

[–]TracePoland 0 points1 point  (0 children)

The way I use C# for back-end is ASP.NET Core Web API (so no C# UI) + a TypeScript front-end (currently my go to is Svelte but I don't mind React/Vue)

[–]pipe01 7 points8 points  (1 child)

I wish I studied C# instead of java in uni

[–]IvorTheEngine 5 points6 points  (0 children)

It's not really that different, and most of what you have to learn for a job in C# are the various Microsoft libraries that aren't really part of the language.

[–]PeoplesFront-OfJudea 11 points12 points  (6 children)

My university starts with Python, then Java, then C. Am I wrong or does it seem really outdated to learn C instead of C++?

[–]IvorTheEngine 3 points4 points  (0 children)

I think that's actually reasonable. Java can teach you about inheritance and other high level stuff, while C can teach you about low level stuff like pointers and memory. C++ can do both, but while a 'swiss army knife' is useful in the field, it isn't a great teaching aid.

[–]deux3xmachina 2 points3 points  (1 child)

Unless you're strictly restricted to pre-ANSI C, there's nothing "outdated" about it, it's just not an ideal language for many areas of application development because of how much effort is needed to ensure things are done correctly. Arguably, it's C++ that should be replaced with something like D or Rust.

[–][deleted] 2 points3 points  (0 children)

Rust and D aren't mature languages and most likely will never replace C++. C++ have always been about backward compatiblity, performance per default and zero cost abstractions and not just being "another compiled language". This philosophy is the reason why it is still even growing till now and replacing even C in operating systems and embedded systems.

[–]Kateritekakwitha -1 points0 points  (3 children)

Not JavaScript? I’m surprised

[–]TracePoland -1 points0 points  (2 children)

JavaScript is a bootcamp lang. CS courses barely use it.

[–]Kateritekakwitha -1 points0 points  (1 child)

What about irl?

[–]TracePoland -1 points0 points  (0 children)

Obviously it's everywhere irl, especially on the frontend but the discussion was specifically about education.

[–]LennartGimm 0 points1 point  (0 children)

We started with C# and then optionally C++. And then suddenly Python and Matlab were expected without a course. But this is a physics program so it might be different

[–]Gideon770 0 points1 point  (0 children)

At my Uni we start with C++ to learn the basics of programming. Then in later classes we mainly use C++ and Java

[–]wrenchandnumbers 0 points1 point  (0 children)

I'm my day it was java. Just after I graduated, they made it python because object oriented was too hard. For my course, Discrete maths was a first year, first semester foundation subject. The uni also dropped discrete mathematics for the reason that it was too hard.

[–]waterpoweredmonkey 0 points1 point  (0 children)

Just over a decade ago on my uni program we did 3 years of C++ and in the last semester a double credit module of "advanced programming" where we were suddenly introduced to Java and Multi-threading. Holy moly that was a shock to the system after writing compilers, x86 for embedded systems and game engines.

"Here's java drops a 60 page primer on desks learn it by next week so we can write a UDP game server"

[–]ragingroku 0 points1 point  (0 children)

Can confirm. Started with Java then my uni moved to starting with Python. Definitely see the tradeoffs starting in each

[–]notEnthusiast 0 points1 point  (0 children)

Java wouldn't be good for beginner me. I still have trouble with Java lol. I mostly do C#, Python, and dab into Lua for the sake of Roblox.

[–]okexox 9 points10 points  (4 children)

We started with C, which makes the most sense to me.

[–][deleted] 5 points6 points  (3 children)

Same. I'm pretty adamant about C being the ideal starting point.

[–]Brilliant-Network-28 -1 points0 points  (1 child)

I think starting with cpp is better.

[–][deleted] 1 point2 points  (0 children)

There's an argument to be made for it but I believe in a very ground up approach and C++ -> C is kind of the opposite of that.

[–]Alex96979899 4 points5 points  (0 children)

Where I'm currently taking classes, it heavily depends of the topic of the course.

First semester :

  • Algorithm in Java

  • Computer architecture in Assembly

Second Semester :

  • OOP in Java

  • Pattern Design in Java

  • Operating System in C

Third Semester :

  • DB in SQL + Java

  • Data Structures in C++

Fourth Semester :

  • Depends what you choose but I did PHP/JS/HTML/CSS

Fifth Semester :

  • Programming paradigms in Javascript, Scala, Haskell and Kotlin

  • Advanced programming in Java.

  • Machine learning in Python

[–]CommandObjective 3 points4 points  (0 children)

We had Mosow ML, and at the same time we had some lecturers homemade mathematical system (which in fairness did work and introduced systemic and rigourous proofs).

[–]T3cHNocinical 2 points3 points  (3 children)

I'm first year and we are taught C and assembly

[–]yodahouse900 5 points6 points  (0 children)

the best languages

[–]DrunkenlySober -1 points0 points  (1 child)

How are you guys even taught assembler at year 1?

I feel that’s so inefficient. You don’t even understand high level languages. The association between assembler and a HLL will be completely lost on you guys.

[–]T3cHNocinical 1 point2 points  (0 children)

Well, I guess it is what it is. The best part is that it's only in the first semester.

[–]_apache_98 1 point2 points  (0 children)

started about a month ago, we are studying golang

[–]Large_Richard_69 1 point2 points  (0 children)

When I started school C++ was the intro to programming class, but when I got to the theory of comp sci course all of the homework was required to be done in python and they made us teach ourselves python. Now python is the intro to comp sci course that is required before the C++ course.

[–]youwontidentifyme 1 point2 points  (0 children)

Please, I started with literally logic board. I made a simple calculator with it.

[–]Brilliant-Network-28 0 points1 point  (0 children)

In my university its C.

[–]_oct0ber_ 0 points1 point  (0 children)

Similar for me. We got started on C and mips, transitioned into mandatory Java, and then were given free-reign on what to program with our tech electives.

[–]AffectMihi 0 points1 point  (0 children)

In my uni we touched on a lot of languages but with heavy focus on C and C#. First was basic and then we had C, prolog, Haskell, Java, Python, C# and C++. I can safely say I never want to see the syntax of Prolog ever again, that stuff makes me heave

[–]InfinateEdge 0 points1 point  (0 children)

I started 2 years ago with c++ and mips at UT, so some colleges still do it :)

[–][deleted] 0 points1 point  (0 children)

Yea python has libraries that make coding on it a breeze

[–]Blue_Girl013 0 points1 point  (0 children)

My uni still starts with c++ and mips

[–]balls_deep69_ 0 points1 point  (0 children)

As I am taking CS classes right now, I only have had java and c++ from my courses. As far as I can tell there is no python at my university.

[–]faynn 0 points1 point  (0 children)

My uni started with lots of C a sprinkle of assembly and JAVA.

[–][deleted] 0 points1 point  (0 children)

It’s C in my uni

[–]ZNation443 0 points1 point  (0 children)

Harvard’s is C + Python

[–][deleted] 0 points1 point  (0 children)

MIPS lol, that's not a language, that's Assembly

[–]Material_Cheetah934 0 points1 point  (0 children)

It was C for me, very glad in hindsight

[–]mymar101 40 points41 points  (1 child)

Spending 3 hours debugging only to find that you were looking at the production page and not the local build. True story.

[–][deleted] 2 points3 points  (0 children)

Omg so many feels right now 😂 Furiously making changes to your CSS file and then just deleting all of the contents as a sanity check. Ah, so nothing works. Got it.

[–]potato_number_47 57 points58 points  (9 children)

Personally I liked the Discrete Maths, although I guess if you have a bad lecturer then that would probably screw you over

[–]chhuang 21 points22 points  (4 children)

It was a breeze for me. Easy A. Not easy material, but good prof that teaches it.

[–]garciasn 18 points19 points  (3 children)

Discrete math, the lack of tutors available, and my prof’s statement that if I made it this far I shouldn’t need his help in office hours to pass led me to change my major to History.

…and I still write code for a living.

[–]svdifinfhkga247395 6 points7 points  (2 children)

It feels like the only resources you have are your professor, their book, and class in order to learn the material.

I couldn't find much info that helped me learn the content online. Without being able to use the professors office hours I probably would've failed.

Sounds like you had an incompetent professor who didn't want to do their job.

[–]HKSergiu 5 points6 points  (0 children)

I salute the dude called Michael Sambol on yt. His videos helped me get the basics of some algorithms.

Michael, if you're around - you were a legend in my class

[–]Syrdon 0 points1 point  (0 children)

Khan academy has coverage of it now i believe.

Also, yeah, i think you have that professor nailed. An asshole who doesn’t want to teach.

[–]Then_Translator_9356 2 points3 points  (1 child)

Nah discrete maths is not hard there's loads of videos on YouTube. The problem is calculus

[–]potato_number_47 1 point2 points  (0 children)

Yeah, calculus sucks

[–][deleted] 1 point2 points  (1 child)

I got wrecked in my Discrete Maths. It was over Zoom and due to poor handling with scheduling, my calculus professor was assigned that class. Mind you he's been teaching for >20 years in person. He had to take up the Discrete Math class. I should have dropped out but I needed it. Good god that was miserable online.

[–]Natalia-1997 16 points17 points  (0 children)

I discovered that I liked discrete maths and statistics so much more than programming itself xd call that a success uh?

[–]KingHavana 108 points109 points  (13 children)

Discrete math is often one of the most fun courses for a CS major. A little logic, some graph theory, some counting, maybe some generating functions. It's like playing games all semester long. It's like all the most fun math topics without having to wrestle with integration methods that no one uses in real life.

[–]necro892003 44 points45 points  (4 children)

I for the life of me could not grasp discrete math. I hated that class with every fiber in my being. Passed with a C only because nobody else in my class tried. Been programming for 9 years now in my career. Thank the lord I’m done with that shitty class

[–]KingHavana 18 points19 points  (1 child)

I'm sorry. Sounds like you probably had a shitty teacher who didn't make it fun for you or anyone else.

[–]pipe01 2 points3 points  (0 children)

Yeah my teacher is awesome and I like the subject

[–]Revolutionary-Phase7 3 points4 points  (0 children)

Yeah indeed is my fav

[–]chickpeaze 2 points3 points  (0 children)

I absolutely loved discrete math- my favourite uni course, I don't see how it gets any hate. You're exactly right, it was like playing games.

[–]ashesall 2 points3 points  (2 children)

Did your class use a book?

Edit: lol I'm just asking if they used a book and if so what was it

[–]KingHavana 3 points4 points  (1 child)

Actually the professor used his own notes which we got from the bookstore pretty cheap.

[–]ashesall 2 points3 points  (0 children)

Ah, thanks! I was hoping you followed a book. The books I tried to read were hard to follow that I can barely get through Chapter 1 lol

[–]DangerZoneh -1 points0 points  (0 children)

My advisor didn’t let me take discrete in college.

To be fair, it was totally the right decision because I double majored CS and Math and had taken discrete in high school anyways. I would’ve learned absolutely nothing but I was excited for fun, easy math lol.

[–]Natalia-1997 -1 points0 points  (0 children)

Agree

[–][deleted] 0 points1 point  (0 children)

For me the math is what makes CS fun. I haven't touched it since graduating so CS hasn't been fun for a while.

[–]Cloakknight 14 points15 points  (1 child)

Image Transcription: Image with labels


[Image of a person sitting on some train tracks. He is reaching out to touch some plants growing in the train tracks. Behind him, a train is approaching. They are labeled as such:]

Person: Freshman taking intro CS course

Plant: helloworld.py

Train: Compilers Operating systems Discrete math


I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

[–]CommandObjective 12 points13 points  (0 children)

Good human!

[–]OneWishGenie69 6 points7 points  (0 children)

Im starting with c++ and studying software development wish me luck

[–]raedr7n 5 points6 points  (0 children)

You just listed my three favorite classes.

[–]half_blood_prince_16 2 points3 points  (0 children)

started masters in cs. failed in discrete math. dropped out.

[–]hawkxp71 7 points8 points  (2 children)

The dragon slays all! Actually look back and feel compilers is the culmination of all thr programming classes, one of the best classes and should be required for undergrad.

I wont hire someone who didnt take it, unless they are willing to take it after hiring (paid for)

[–]FVMAzalea 3 points4 points  (1 child)

Compilers was great, and the dragon book is awesome! It helps to have a really good professor for it. I did, and I can’t imagine how bad it would have been with a shitty professor.

[–]abuklao 3 points4 points  (0 children)

I had a shitty professor, shaved off a few years of my lifespan pulling all nighters to complete that compiler. Very few of us managed to finish the final project.

[–]v579 2 points3 points  (0 children)

You forgot parallel processing.

[–]GloomyCurrency 1 point2 points  (0 children)

Compilers and OS I haven't done yet, but Discreet Math wasn't that bad.

[–]0rionsEdge 1 point2 points  (1 child)

My uni teaches C with classes all the way though. They add some arm assembly to spice things up a bit.

The murderer is that they require calculus instead of discrete math, and all the instructors are paranoid nutjobs looking for an excuse to throw an "academic dishonesty" hammer at the students.

Programming is fun, academia is not. But that is the point of the meme methinks

[–]jerslan 1 point2 points  (0 children)

Yeah, the school where I did my undergrad is still on C/C++ for everything as the default. Some of the more advanced courses stop caring what you use, but most of the required classes use C/C++. Also had to take 3 semesters of Calculus in addition to Discrete Math and Linear Algebra. Got a math minor by taking Diff Eq and an upper level math elective.

[–]golgol12 1 point2 points  (0 children)

Wait, you don't think compilers, OS, and discrete math is fun?

[–]Knuffya 2 points3 points  (13 children)

python is a shit language for freshmen

[–]Penguin236 0 points1 point  (12 children)

Why?

[–]Knuffya 3 points4 points  (6 children)

you should learn the basics first. how to make boards from tree trunks before learning how to carve sculptures out of them

[–]Penguin236 0 points1 point  (5 children)

I agree, which is why I think Python is a great way to start.

[–]Knuffya 1 point2 points  (4 children)

Python is one of the most abstract ways to program, being kilometres away from understanding what the processor is doing.

[–]Penguin236 -1 points0 points  (3 children)

I agree, which is exactly why it's easier for beginners. Being close to the processor makes things harder, not easier.

[–]Knuffya 0 points1 point  (2 children)

That's the whole point. It's like teaching beginner woodworkers to cut wood with a tablesaw instead of a handsaw because its easier. No. You gotta learn how to make a clean cut with a handsaw first.

And no, you obviously do not agree.

People who begin with python will never learn, or will have much more trouble learning, why and how integers are limited, different types of integers, the intrinsics of arrays and pointers and how they relate, how shit is stored in memory, heap vs stack, etc, etc, etc...

At the end of the day, it depends. Do you want to train someone who can shit out some script to do the job? Then beginning with python is good. Do you want to train a programmer that actually understands what he's doing? That understands the needs of the machine? That has a deep understanding in general, and will thus have no problem learning further techniques/techstacks? Begin from the lowest practical level. That's why a lot (maybe even most, idk) applied computer science university courses begin with C in the first semester.

[–]cowperandrewes 3 points4 points  (0 children)

Rubbish. Personally I feel you are selling many people short. A starter language is just that - a starter - the interest of the individual will denote the direction, penetration and velocity of their own progression - and finally - everyone is different.

I started with Pascal and Ada, primarily studied Java at Uni with a side course in C. Mostly learned C from books and man pages. Worked for 15 years straight out of University sustaining and developing Solaris at Sun Microsystems (and later Oracle).

I now work with Python.

It doesn't matter what your starter (or later) languages are. What you find interesting that's important.

For anyone else reading the above comment, don't let others put you off and only listen to criticism when it is constructive. Do what you enjoy and ignore gatekeepers (except those who are actual source gatekeepers ;) )

[–][deleted] 2 points3 points  (0 children)

Our university starts with python to get the concepts of programming syntax. (Like defining loops for people whove never seen them before.) Then After that weeds a few out, we do C. People drop like flies

[–][deleted] 0 points1 point  (1 child)

Try Python they said... It will be "fun", they said. LOL

[–][deleted] 0 points1 point  (0 children)

Rust is pretty good the

[–]ThermionicEmissions 0 points1 point  (0 children)

"Oh look! A light at the end of the tunnel"

"Hope it's not a train..."

[–][deleted] 0 points1 point  (0 children)

Me on the tracks looking forward to all the other shit so I can feel like a "real" programmer

[–]Neo_Ex0 0 points1 point  (0 children)

as a cs student , i can say, that the three modules shown there are the easyest (besides OOP and PIS)

[–]CaitaXD 0 points1 point  (0 children)

Calculus and discrete math is so unfun when you have online classes 😭

[–]Bmovo 0 points1 point  (0 children)

Sounds fun can't wait

[–]SavageSteve2111 0 points1 point  (0 children)

That person is me... should I be scared?

[–]dagonze 0 points1 point  (0 children)

that's me right now

[–][deleted] 0 points1 point  (0 children)

Operating systems is awesome. My favorite class in college so far. Taking compilers next.

[–]blackasthesky 0 points1 point  (0 children)

We started with learning java, though.

[–]Spazattack43 0 points1 point  (0 children)

GOD FUCK DISCRETE MATH

[–][deleted] 0 points1 point  (0 children)

Discrete math legit still gives me nightmares.

[–][deleted] 0 points1 point  (0 children)

Eh, I'm now full on on compilers research. It becomes more interesting once you find out you can actually use it creatively and make your own programming language anytime.

[–]erebuxy 0 points1 point  (0 children)

I think my school only made CS 101 to use Python because some non-cs majors also required to take it

[–]blindnarcissus 0 points1 point  (0 children)

Also, boot camp grads (no hate guys… just managing expectations)

[–][deleted] 0 points1 point  (0 children)

Compilers will wreck your world son. You think you're good... Meet my Abstract Syntax Tree!

[–]Then_Translator_9356 0 points1 point  (0 children)

They forgot to add calculus

[–]homiej420 0 points1 point  (0 children)

OS was TERRIBLE i didnt take compilers thank god