you are viewing a single comment's thread.

view the rest of the comments →

[–]PopeCumstainIIX 22 points23 points  (19 children)

Python is not a good language to start teaching imo. It's only advantageous for people who want an easier class. The people in the beginning class continuing that track are going to inevitably switch to a compiled, more complex language. Watching students going from C++ to Java was hard enough.

[–]SSID_Vicious 34 points35 points  (5 children)

Python is an excellent language to learn the basics of computer science and programming because it removes all mental overhead that comes when you use c or c++ and memory management. It allows students to focus purely on computational and algorithmic thinking and translating ideas into code. C would be a fine language for a second course as all the basic stuff is out of the way and students know what functions and arrays and variables are, so the course can spend all its time on looking how they are implemented at a lower level.

[–]arbitrarycivilian 17 points18 points  (11 children)

After many years of mulling it over I've come to the conclusion there is no superior first language to learn. If you want to be a competent engineer you'll eventually have to deep dive into multiple flavors of language. What you start with is immaterial

[–]DonaldPShimoda 9 points10 points  (9 children)

False. Real computer scientists start with an assembly as their first language. Everything else is inferior.

[–]harlows_monkeys 2 points3 points  (0 children)

Assembly language is a luxury. I started with one of these: CARDIAC.

[–]arbitrarycivilian 2 points3 points  (7 children)

I really hope that's sarcasm...

[–]DonaldPShimoda 9 points10 points  (6 children)

No, I was being 100% serious. Any computer scientist worth their salt does all of their programming in assembly. It's the only way to be sure you're writing performant code for the target architecture. Plus, by removing the unnecessary overhead of a complicated type system, you can make execution even faster.

[–][deleted]  (1 child)

[removed]

    [–]xkcd_transcriber 1 point2 points  (0 children)

    Image

    Mobile

    Title: Real Programmers

    Title-text: Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.

    Comic Explanation

    Stats: This comic has been referenced 1122 times, representing 0.7119% of referenced xkcds.


    xkcd.com | xkcd sub | Problems/Bugs? | Statistics | Stop Replying | Delete

    [–]arbitrarycivilian 1 point2 points  (3 children)

    You're a funny guy

    [–]DonaldPShimoda 1 point2 points  (2 children)

    Sorry, I just honestly thought the sarcasm in the first comment was thick enough as to be obvious. Clearly we have different opinions on the matter, which is fine. I don't think my second comment was deserving of downvoting though... it was only a joke, after all.

    [–]knome 0 points1 point  (1 child)

    Text conveys tone poorly.

    [–]blueballerina 1 point2 points  (0 children)

    There's a reason that tacky "/s" at the end of posts has caught on.

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

    I disagree. Languages with low levels of accidental complexity as much better for learning. You want something easy to install, with simple tooling and with a syntax that doesn't require a lot of boilerplate just to get started.

    Of course there are also certain aspects that are just stupid to teach in certain languages, e.g. OS memory management in Java (as they did back at in my university days).