Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3 4

Author Topic: How difficult is computer programming?  (Read 5601 times)

Muz

  • Bay Watcher
    • View Profile
Re: How difficult is computer programming?
« Reply #15 on: January 29, 2014, 10:21:14 am »

I'd think professors know better which languages are employable. (haha. no. no they don't)

Still, it's quite convincing if they won't even teach it in a core computer science degree. I think C and C++ are great skills to learn how computers work and why object oriented is so awesome, so no loss if you learn it properly. But if you're going to jump straight into coding as fast as possible, just do Python or something.

Multithreading and parallel work kinda falls into the low level field these days :P

Everyone has different opinions on what's good though. I mean back when I was in uni, they taught Haskell as the basic computing language (C for advanced students). This was supposed to be the best comp sci university in Australia too. So just feel free to throw away and follow whoever's advice here, because I'm sure any advice would conflict with some professional academic's advice. What matters is that you learn something.
« Last Edit: January 29, 2014, 10:25:23 am by Muz »
Logged
Disclaimer: Any sarcasm in my posts will not be mentioned as that would ruin the purpose. It is assumed that the reader is intelligent enough to tell the difference between what is sarcasm and what is not.

gigaraptor487

  • Bay Watcher
  • Escaped Lunatic now civilised
    • View Profile
Re: How difficult is computer programming?
« Reply #16 on: February 02, 2014, 03:04:59 pm »

To me at least they are quite easy, but I have been doing them for the better part of 4 years. However, the challenge is actually designing a program and making all the parts work.

To a degree, once you have learnt something like C/C++ you can grasp all others within a weekend (unless it is a functional language like Lisp or Haskell).

Personally I love C, but that is because I don't give up that easily. Otherwise try Python as that is a dream for a beginner IMHO.
Logged
Hehe, you thought there would be an interesting sig here

I now run a program which brings old multiplayer games back to life : click

alway

  • Bay Watcher
  • 🏳️‍⚧️
    • View Profile
Re: How difficult is computer programming?
« Reply #17 on: February 05, 2014, 11:28:38 pm »

I never said you should start with C++ (at least, not in this thread :P). C# is a much nicer one, since the MSDN documentation & tutorials are amazing, and you can directly apply it to the Unity game engine and jump right into games/visualization if that's your thing. C++ is what you would learn afterwards.
I'd think professors know better which languages are employable. (haha. no. no they don't)

Still, it's quite convincing if they won't even teach it in a core computer science degree. I think C and C++ are great skills to learn how computers work and why object oriented is so awesome, so no loss if you learn it properly. But if you're going to jump straight into coding as fast as possible, just do Python or something.

Multithreading and parallel work kinda falls into the low level field these days :P

Everyone has different opinions on what's good though. I mean back when I was in uni, they taught Haskell as the basic computing language (C for advanced students). This was supposed to be the best comp sci university in Australia too. So just feel free to throw away and follow whoever's advice here, because I'm sure any advice would conflict with some professional academic's advice. What matters is that you learn something.
First, your default assumption should be that CS professors know nothing about the industry until they prove otherwise. If they went into the industry at all, it was a good time in the past, and they are no longer in it, as they are professors now. Which means everything they say should be assumed to be inaccurate, out of date, or blatantly wrong. For example, when visiting universities to figure out where I wanted to go, I talked to the head of a medium-sized in-state CS program. I asked about what they did with video games, and the response I got was that "There really aren't jobs in video games; that work is all outsourced." Very close to the exact opposite of the actual state of things.

Second, I strongly suspect that Java and Python are so frequently the most in-depth programming taught is not because it is actually better, but because it is easier for professors to teach and students to learn if that is all that needs to be taught. Can you get a job with it? Sure. But it won't be an industry-leading job.

Third, object oriented is not awesome. In fact, it can be extraordinarily terrible. If you want good performance out of your code, you will toss most of OOP out the window at the first chance you get. And with a highly complex system like a game engine, it can also help readability by unifying important operations, rather than scattering them to the winds as member functions of dozens of classes and subclasses in a hierarchy. OOP is great when you're new and find the abstractions of code hard to think about, but it certainly isn't the end-all paradigm. 

Fourth, multithreading and highly parallel programming is precisely what people should be learning about. A modern CPU has half a dozen cores; without knowing the basics of load balancing and how to write parallel-friendly code, you are stuck using a tiny fragment of the CPU. Then there's the GPU; those have upwards of 2 orders of magnitude more power than the CPU, and is thus immensely important for any big data, video games, or supercomputer work. If you can't write parallel code, you're throwing away literally more than 99% of your available computing power. In my book, that makes it as important as data structures and Big O Notation.

Fact of the matter is, basic programming is diffusing through the culture of an entire generation. It's becoming a highschool level topic. If you actually want a career in it, you need to be immersed in "the low level field" or the children of today and tomorrow will put you out of a job by growing up learning the things which are the extent of your knowledge. You need to outcompete them; and having seen some of the freshmen coming into the uni I went to, I can safely say that there is a massive wave of programming-literacy on the horizon that makes mere basic knowledge no longer competitive.
Logged

itisnotlogical

  • Bay Watcher
  • might be dat boi
    • View Profile
Re: How difficult is computer programming?
« Reply #18 on: February 06, 2014, 07:29:03 pm »

Second, I strongly suspect that Java and Python are so frequently the most in-depth programming taught is not because it is actually better, but because it is easier for professors to teach and students to learn if that is all that needs to be taught. Can you get a job with it? Sure. But it won't be an industry-leading job.

This. Even being the most casual of hobbyist programmers, putting in the extra work to learn C++ has made a lot of things easier in the end. Not really in an immediate "My programs are better now" sense, but fixing a problem in a C++ program that you've written is always a learning experience. There's also the benefit of having a problem pointed out to you in big red letters before the program will even compile, compared to anything but a syntax error just stopping it mid-execution as in Python (where it might be missed).
Logged
This game is Curtain Fire Shooting Game.
Girls do their best now and are preparing. Please watch warmly until it is ready.

MorleyDev

  • Bay Watcher
  • "It is not enough for it to just work."
    • View Profile
    • MorleyDev
Re: How difficult is computer programming?
« Reply #19 on: February 07, 2014, 03:27:09 am »

Honestly I think Java and C# are terrible teaching languages that hurts programmers if they learn them first. C++ has the advantage of letting you move through low-to-high level knowledge effectively, teaching you the concepts all the languages are built on.  Python is can achieve similar results without hurting people's brains as much (nothing purges the weak quite like "Week 2: Write Linked List implementation in C++").

Java and C#? Those, you have to constantly tell students "Don't pay attention to this yet, it's too complicated for you for now" (Java maybe more than C#). And that is a terrible precedent to say.
« Last Edit: February 07, 2014, 03:36:09 am by MorleyDev »
Logged

Sheb

  • Bay Watcher
  • You Are An Avatar
    • View Profile
Re: How difficult is computer programming?
« Reply #20 on: February 07, 2014, 03:41:24 am »

I'm no programmer (yet), so feel free to totally disregard my advice, but I'm currently taking Harvard's CS50x course on EdX and I really like it. They do have tons of resources and projects. I guess it depend on your learning style, but having thing be a bit structured is really helping me.
Logged

Quote from: Paul-Henry Spaak
Europe consists only of small countries, some of which know it and some of which don’t yet.

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: How difficult is computer programming?
« Reply #21 on: February 07, 2014, 11:49:31 am »

nothing purges the weak

And this is what's wrong with this entire conversation. The assumption that people should already be ultra super motivated and strong and have all the massivest willpower in the world or they suck and don't really deserve to know programming. Away with thee, peasants, for this is the Castle of C++, and thou art not worthy of these halls!

If we focused instead on getting people through the basics, they'd eventually start having fun with programming, instead of horrible self-C++-flagellation, and could progress into C++ if it were actually useful at any point in their lives - which is honestly highly debatable.

And then we'd have a much more computer literate population, and lots more people who could actually get into making cool projects, rather than giving up early because everybody tells them to do C++ and none of the compilation or linking errors make any sense whatsoever, and they give up on programming altogether :P

I'm going to take a break now :P I keep getting more and more infuriated with elitism :P

MorleyDev

  • Bay Watcher
  • "It is not enough for it to just work."
    • View Profile
    • MorleyDev
Re: How difficult is computer programming?
« Reply #22 on: February 07, 2014, 11:58:26 am »

nothing purges the weak

And this is what's wrong with this entire conversation. The assumption that people should already be ultra super motivated and strong and have all the massivest willpower in the world or they suck and don't really deserve to know programming. Away with thee, peasants, for this is the Castle of C++, and thou art not worthy of these halls!

You do realise I was mostly joking, right? I assumed my "purge the weak" line was indicative of supporting Python over C++ for teaching beginners. It's easy to learn and teaches you the concepts without teaching you to ignore things because they're "too complicated for your poor newbie brain". Which was my complaint against C# and Java.

However, there is an argument that just as you shouldn't make University-level studying of writing easier for people who don't have a good brain for writing, university-level studying of programming shouldn't be slowed down for people who don't have a good brain for it but instead move at a fairly advanced pace. Basically, it's how much prior-knowledge and bias-towards-skill should be required at that level. It can be argued that if you slow down for the 90% who aren't so predisposed, you risk hurting the chances of the 10% to go on and do the really great stuff.

To be honest, if we were talking a graduates just not being able to cope with big and complicated problems I'd not be so "raarraar something is wrong", but here's the thing. And I don't know whether to laugh or cry whenever I hear this, but a not insignificant number of people with computer science degrees will, during a job interview for a programming job, fail at writing a solution to FizzBuzz. FizzBuzz. If anything indicates a problem with the way programming is taught at university, a good percentage of graduates failing at one of the most basic of programming challenges certainly does.
« Last Edit: February 07, 2014, 12:36:09 pm by MorleyDev »
Logged

Eagleon

  • Bay Watcher
    • View Profile
    • Soundcloud
Re: How difficult is computer programming?
« Reply #23 on: February 07, 2014, 12:42:48 pm »

nothing purges the weak

And this is what's wrong with this entire conversation. The assumption that people should already be ultra super motivated and strong and have all the massivest willpower in the world or they suck and don't really deserve to know programming. Away with thee, peasants, for this is the Castle of C++, and thou art not worthy of these halls!

You do realise I was mostly joking, right? I assumed my "purge the weak" line was indicative of supporting Python over C++ for teaching beginners. It's easy to learn and teaches you the concepts without teaching you to ignore things because they're "too complicated for your poor newbie brain". Which was my complaint against C# and Java.

However, there is an argument that just as you shouldn't make University-level studying of writing easier for people who don't have a good brain for writing, university-level studying of programming shouldn't be slowed down for people who don't have a good brain for it but instead move at a fairly advanced pace. Basically, it's how much prior-knowledge and bias-towards-skill should be required at that level. It can be argued that if you slow down for the 90% who aren't so predisposed, you risk hurting the chances of the 10% to go on and do the really great stuff.

To be honest, if we were talking a graduates just not being able to cope with big and complicated problems I'd not be so "raarraar something is wrong", but here's the thing. And I don't know whether to laugh or cry whenever I hear this, but a not insignificant number of people with computer science degrees will, during a job interview for a programming job, fail at writing a solution to Fizz Buzz. Fizz Buzz. If anything indicates a problem with the way programming is taught at university, a good percentage of graduates failing at one of the most basic of programming challenges certainly does.
Neither C# or Java are so inflexible or high-level that programming fizzbuzz should be a significant challenge. I reject the notion that learning about the few things that Java hides from programmers (which really aren't that hidden, since you have to do your own sort of garbage collection if you don't want your program to bloat past the memory limit anyway) will cripple their ambition to understand the rest. It's exactly like saying that having a telescope makes it harder to understand astronomy. The sad reality is that there are plenty of old C++ projects floating around in the void (hehe) that did nothing but copypaste other people's code with moderate modifications - no language is immune to that kind of thinking. Your percentage is probably a fixed number of people that either never got it through their heads that they should have some imagination, or most likely were actively discouraged from it in grade-school.
Logged
Agora: open-source, next-gen online discussions with formal outcomes!
Music, Ballpoint
Support 100% Emigration, Everyone Walking Around Confused Forever 2044

MorleyDev

  • Bay Watcher
  • "It is not enough for it to just work."
    • View Profile
    • MorleyDev
Re: How difficult is computer programming?
« Reply #24 on: February 07, 2014, 12:55:05 pm »

Well I think it's more systemic a problem than just "Stop teaching C#/Java". I just think C#/Java aren't good languages for teaching, it drills magical "don't think about this for now" walls into peoples heads and conditions them to not think about complicated things. Which is terrible.

From people I've spoken to in the industry, it appears that those people graduating despite not being able to do FizzBuzz is devaluing Computer Science as a degree. They've stopped valuing them when hunting for employees because they find that most of the people with the degrees are wastes of their time.

Now, how does this relate to "purging the weak"? Well, an argument I have heard from several professors goes that by making the degree easier to obtain, you make it inherently mean less to hold such a degree. By making it so those who are incapable of keeping up are forced to drop out or fail, you may get less graduates but being a graduate has more inherent value and because professors have to spend more time babysitting people they spend less time nurturing growth and as such the more skilled graduates also suffer. So nobody wins long term except the university, who make more money from having more people attend for the full 3-4 years and graduate.
« Last Edit: February 07, 2014, 01:14:01 pm by MorleyDev »
Logged

Eagleon

  • Bay Watcher
    • View Profile
    • Soundcloud
Re: How difficult is computer programming?
« Reply #25 on: February 07, 2014, 01:18:47 pm »

It's the university's job to teach students, whether they know how to learn or not. The 'weak' students you speak of do need additional instruction - that's what they're paying for. You're leaving out a much simpler part of the equation - less demanding colleges are also much cheaper because they get more students, and so the class-size bloats. You get more babysitting (aka, teaching and answering people's questions) per session as a simple matter of numbers. Less gets taught, and the problem extends through your entire degree. I would love to go to Berkeley for robotics, or Northwestern for technical writing. Most people want to get to the best college they can afford, because the quality of instruction is better. It would bankrupt my family, so I can't go that route.

From my experience, observing people's dreams and spirit shut down in middleschool and even earlier because they momentarily don't 'grok' something in math or english, the gap in 'talent' between two students picked at random is pretty small, and the whole ACT/SAT/Scholarship dance is absurd elitism that destroys lives and potential. So no, I don't really care that your degree is being devalued because teachers are overburdened by 'babysitting'.
Logged
Agora: open-source, next-gen online discussions with formal outcomes!
Music, Ballpoint
Support 100% Emigration, Everyone Walking Around Confused Forever 2044

MorleyDev

  • Bay Watcher
  • "It is not enough for it to just work."
    • View Profile
    • MorleyDev
Re: How difficult is computer programming?
« Reply #26 on: February 07, 2014, 01:25:40 pm »

I think it may be worth mentioning that I'm speaking mostly from a UK perspective where University fees are more or less fixed and getting into a top university is very much dependent upon grades at college (16-18) more than finances (or at least was until government blahblahblah, but I think fees are still pretty consistent). It's starting to sound like there is something of a culture clash going on here.
« Last Edit: February 07, 2014, 01:29:38 pm by MorleyDev »
Logged

Eagleon

  • Bay Watcher
    • View Profile
    • Soundcloud
Re: How difficult is computer programming?
« Reply #27 on: February 07, 2014, 01:34:35 pm »

I think it may be worth mentioning that I'm speaking mostly from a UK perspective where University fees are more or less fixed and getting into a top university is very much dependent upon grades at college (16-18) more than finances (or at least was until government blahblahblah, but I think fees are still pretty consistent). There maybe something of a culture clash going on here.
Fair enough! I've been thinking about getting the hell out of here for exactly that reason. Still, as far as I understand we got our obsession with testing and ranking from you guys :P It's still a dance and set of hoops that not everyone is up to going through, for any number of perfectly legitimate reasons including dealing with poverty.
Logged
Agora: open-source, next-gen online discussions with formal outcomes!
Music, Ballpoint
Support 100% Emigration, Everyone Walking Around Confused Forever 2044

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: How difficult is computer programming?
« Reply #28 on: February 07, 2014, 01:48:07 pm »

You do realise I was mostly joking, right?

My apologies. I had actually not realised you were joking. I guess that comes from the fact that I don't understand how Python is less hand-holdy than Java/C#. In my experience it's more of a C++ -> Java/C# -> Python rather than switching the last two?

The discussion about universities is very interesting, though probably a little off topic. The fact is I ended up coming to the US in search of an institution that didn't pander to the lowest skilled or motivated student. It's been an amazing experience. In some sense, I guess I'm agreeing with MorleyDev.

In an ideal world, personal finances shouldn't affect whether you can get into good schools and bad schools. However, I have to say that the so-called "good schools" in the US aren't necessarily good school. They just enjoy reputation and manage to maintain it in a vicious circle, where graduates go into important positions because they're from there, and thus value people from those institutions more.

Anyway, there's a million different very serious issues here. We should focus on the programming discussion :D I'll say it again though: on this web-forum, I honestly don't think we need to be talking about university level programming classes. We're usually talking to people who want to learn by themselves, and come here for help.

MorleyDev

  • Bay Watcher
  • "It is not enough for it to just work."
    • View Profile
    • MorleyDev
Re: How difficult is computer programming?
« Reply #29 on: February 08, 2014, 05:07:35 am »

It's not so-much the hand-holding as that you end up with things like this for your Hello World.

Code: [Select]
public class Program
{
     public static void main(String[] args)
     {
          System.out.println("Hello World!");
     }
}

Explain every aspect of that code to a beginner. You more or less have to either immediately explain to them about classes, functions, statics, return types, parameters, arrays, strings in the first 5 minutes, or tell them to ignore what public means, ignore what static means, ignore...well, ignore a whole heap of things. It's actually quite difficult for beginners to follow what's going on because there's so much stuff they have to ignore.

Python 3.x
Code: [Select]
print("Hello World")

Python 2.x
Code: [Select]
print "Hello World"

You don't have that problem, it's easier to explain to a beginner what's going on and easier for them to follow. You can introduce concepts as they use them, instead of having to put a bunch of magic "stuff" on the screen and tell them nothing about it.
« Last Edit: February 08, 2014, 05:10:32 am by MorleyDev »
Logged
Pages: 1 [2] 3 4