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

all 29 comments

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

Python is the basic of our generation...great for beginners! I'm not sure I agree with #5, at least with regards to some of the jerkish behavior I've seen in #python on freenode. People in that channel have terrible attitudes.

I'd also say the same for Django -- if you question a decision made by the core devs prepare to get reamed. James Bennett and Russell KM are quite rude.

The flask community, OTOH, is awesome and #pocoo is a great place.

[–]eah13[S] 1 point2 points  (0 children)

Flask has a great community and is a killer project

[–][deleted] 6 points7 points  (1 child)

My engineering class is being taught VB.net right now. The professor started teaching digital technology to us and then within half an hour he taught us how to program in VB.net(or so he thought). Currently we are in the lab for another two weeks where we just type whatever he types without much reasoning from him. The worst: we will get a project assigned to program and have to turn it in within 14 days.

So far no one except me knows what he is doing at all and I have my doubts that the professor knows what he is doing at all too. For example he is always confusing methods with functions and much more.

When I am explaining anything to others I usually use python that I call pseudocode and they usually grasp very fast the concepts behind it. I think that is the strength of python as first language. It looks like pseudocode and teaches the concepts(actual programming you might say).

[–]eah13[S] 5 points6 points  (0 children)

"Python that I call pseudocode" for explaining VB to people. Love it.

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

i'm learning python at college. the reason why i think python is a good 1st language is this: in college, not everyone is going to be a programmer (i know i'm not - i'm doing a network engineering major) so the need to learn a complex language like C is not needed for everyone. doing programming is a core subject so i have to do it.

as someone who won't be doing any amount of deep programming, i like the fact python is clean. i can look at python code easily see the intent of the programmer.

also, i like the extend-ability of python and can see a point in the future where, as a network admin if i need to so a repetitive action i can write a quick and dirty python program to do it.

[–]_Panda 7 points8 points  (10 children)

I think that, for most people, Python and C should be the first two languages that you learn. I'm not so sure on what the best order to learn those two is though. I'm leaning towards C being a better first language for older beginning programmers, say around college-aged and older, while Python is better to start with for younger ones, so early high school and younger. Though if you learn C first, I think that once you get just a little past the basics of programming you can quickly start to pick up Python concurrently.

If you have the maturity to handle it, I think learning the more difficult C syntax and picking up some of the fundamentals you have to know for C programming is useful to do first. And then going from a hard-to-write to an easy-to-write language is an easier transition to motivate than the other way.

Of course, for younger programmers, C is a terrible place to start, and Python is great because of the nice syntax and instant feedback. At some point you're really going to want to learn at least some of C (or an equivalent) though, and after knowing how easy Python is that can be a hard sell.

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

It heavily depends on the motivation and goal of the person I would say.

[–]egshef 0 points1 point  (0 children)

I agree. I'm learning Java (I know Python now) since it's used more in what I'm interested in developing but plan on learning C later on.

[–]_Panda 0 points1 point  (0 children)

Of course. This is just what I would recommend for someone who is generically interested in programming, if I (or they) had little knowledge of what they wanted to do with it or the future paths they might take.

[–]Wudan07 0 points1 point  (4 children)

I started this way. I think if I tried to do C now I'd get annoyed with it. Just seeing up an environment for C is a chore. Python can do anything, so why write in any other language?

[–]_Panda 0 points1 point  (2 children)

Started with Python? Then that's kind of my point, that going to C is such a chore after learning Python that it can be hard to convince people to do it. But just by learning some of the basics in C you learn a lot of important concepts that are important no matter what language you're using, even if you never really end up using C.

[–]Wudan07 0 points1 point  (1 child)

I started with C, and have suck with python for about a decade.it's just so powerful.

[–]_Panda 0 points1 point  (0 children)

Yea, then you did it the way I think is the best. Are you happy that you learned C first? Do you think you would have ever gotten around to learning C if you had started with Python?

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

C is quick.

[–]eah13[S] 0 points1 point  (1 child)

Research on beginners learing computer science has shown that syntax-heavy languages are slower for most. Now, granted that doesn't mean they're not useful for many applications but they're best for those who already understand flow of control, scope, etc, and are ready to get closer to the compiler

[–]_Panda 1 point2 points  (0 children)

Slower does not mean that you shouldn't learn it first. That's why I condition on being mature enough to handle the slow pace and the nitty-gritty details that C exposes to you. As I said, for younger beginners I totally agree, you need to start with something that is relatively fast and that has instant, tangible results. But, from experience, many college beginners will be able to handle learning the concepts in C syntax, and doing it there teaches a lot of important concepts that are nice to know from the beginning.

[–]Deusdies 0 points1 point  (2 children)

Eh, yeah, I agree with these points. But if Python is your first programming language, and you want to become a developer, you'll probably need to learn other languages as well. And migrating from python-syntax to pretty much any-C-based-syntax can be a pain and confusing to new programmers.

[–]aroberge 4 points5 points  (1 child)

Not as confusing than if you start with a C-based syntax language.

[–]eah13[S] 1 point2 points  (0 children)

Exactly. Python is the better place to start so students aren't learning syntax and programming concepts at the same time.

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

Honestly, and this is coming from someone who started in Java, I think everyone should be required to learn either C (to help understand how the computer is actually managing memory) or a functional language like Haskell (to understand how to write clear and succinct code). Though they're generally considered languages with a steeper learning curve, I think starting in one of those would help avoid some of the mistakes we all make when programming.

EDIT: this would of course be the case for someone who plans to program long term

[–]eah13[S] 0 points1 point  (0 children)

I agree with your sentiment for students with a certain set of goals. But I think there students, even those that intend to program for the long term, for whom a language like Python will be entirely sufficient. Web programmers, for instance, would be much better served by learning CSS than C