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 5620 times)

Eagleon

  • Bay Watcher
    • View Profile
    • Soundcloud
Re: How difficult is computer programming?
« Reply #30 on: February 08, 2014, 11:15:10 am »

Everything in that example besides boilerplate, out-of-place main() is fairly intrinsic to OOP programming in general, though, and becomes pretty much automatically understood as you learn to use it. Hello Worlds aren't meant to teach the language, they're meant to get something on-screen that the student can tweak to show ascii boobs or whatever. You don't have a print keyword ready for a one-liner hello world because it wouldn't make sense - especially not for Java, which is often run on systems that don't even have a screen. An output stream class is the sensible place to put it.

So yeah, you'd be telling them to ignore things. You're also ignoring a lot going on in the background in Python - you don't explain how Python knows what to do when you print() something to a beginner.  A huge hurdle for me was learning to do that, isolate segments of code that were relevant to what I was working on, debugging, whatever, forgetting about things that couldn't have any effect on those parts, and learning to recognize what those things should look like. I don't see that as a big deal to put it in front of them right away.

I'd consider a brief explanation of having a boilerplate entry class, variables (including static vs instance if someone asks what the hell that is), and functions (including parameters - I'd segue into drawing a string from the program arguments in command-line instead of the fixed string) a good first lesson, which explains the vast majority of your example. It's enough to get students looking through the System library (hey, what happens if I use this print() function instead? Or what about System.in?) and working with the language on their own a bit. But I've only ever taught programming one-on-one with someone that -wanted- to learn, not in any kind of classroom with bored stressed-out freshmen, so that's probably a little bit too much. Maybe just ascii boobs?
Logged
Agora: open-source, next-gen online discussions with formal outcomes!
Music, Ballpoint
Support 100% Emigration, Everyone Walking Around Confused Forever 2044

miauw62

  • Bay Watcher
  • Every time you get ahead / it's just another hit
    • View Profile
Re: How difficult is computer programming?
« Reply #31 on: February 09, 2014, 05:07:31 am »

Conclusion: the best way to teach programming is through ASCII boobs. :P
Logged

Quote from: NW_Kohaku
they wouldn't be able to tell the difference between the raving confessions of a mass murdering cannibal from a recipe to bake a pie.
Knowing Belgium, everyone will vote for themselves out of mistrust for anyone else, and some kind of weird direct democracy coalition will need to be formed from 11 million or so individuals.

LeoLeonardoIII

  • Bay Watcher
  • Plump Helmet McWhiskey
    • View Profile
Re: How difficult is computer programming?
« Reply #32 on: February 11, 2014, 07:30:26 pm »

"Now class, the boobs are looking good, but how would we get an entire woman to display and line up properly?"
Logged
The Expedition Map
Basement Stuck
Treebanned
Haunter of Birthday Cakes, Bearded Hamburger, Intensely Off-Topic

freeformschooler

  • Bay Watcher
    • View Profile
Re: How difficult is computer programming?
« Reply #33 on: February 11, 2014, 07:49:07 pm »

"Now class, the boobs are looking good, but how would we get an entire woman to display and line up properly?"

One kid will come up with an algorithm for his thesis.
Logged

alway

  • Bay Watcher
  • 🏳️‍⚧️
    • View Profile
Re: How difficult is computer programming?
« Reply #34 on: February 13, 2014, 02:33:22 am »

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.
So first of all, I agree that magical-thinking is something worthy of loathing. Critical thinking is the most important part of programming, and is entirely lacking in any terrible programmer you will meet. Those who are truly terrible keep up with magical-thinking throughout their entire time at uni, and so are worthless when they finish. However, if the basics are taught fairly quickly, boilerplate code shouldn't really be an issue there; especially when it is explained afterwards.

Secondly, I do greatly disagree with the notion that just having a CS degree should mean you did something more than just wasting your time. You can't prevent that any more than you can prevent poverty by sending the poor to debtor's prison. As someone who is in the industry, I don't care what you have a degree in. I care about you having proved yourself worthy by specifically going out and going above and beyond everyone around you through your work and projects.

There's a joke we had at RIT about one of the other computing majors, the Software Engineering major. One of their big group projects was to create a pizza ordering system which would manage basically every aspect of a pizza store. It wasn't a trivial project by any stretch of the imagination. But the problem was, it was the same project for every student every year. Come time for programming interviews, and we would crack jokes like "Well, my project isn't all that great, but at least the interviewer won't have to see a pizza ordering system!" If you aren't given the time to go above and beyond, or the competitive sense of community built up to challenge you to outdo one another, you aren't going to impress anyone, let alone an interviewer. Fact of the matter is, rigorous coursework isn't actually all that good an indication of how useful a person is. It doesn't show initiative, creative problem solving, or really anything other than a decent work ethic. Assignments aren't important; nobody cares that you did something expected of everyone. It's the challenges issued by professors, peers, and yourself that you take up and overcome, without anyone demanding it of you, and without requiring a professor to look over your shoulder as you do so. Nobody cares about the photon mapping raytracer I did as a homework assignment; they're looking at the erosion simulation I did in my spare time because I thought it was neat.
Logged

LeoLeonardoIII

  • Bay Watcher
  • Plump Helmet McWhiskey
    • View Profile
Re: How difficult is computer programming?
« Reply #35 on: February 13, 2014, 07:46:34 pm »

As usual, XKCD delivers.
Logged
The Expedition Map
Basement Stuck
Treebanned
Haunter of Birthday Cakes, Bearded Hamburger, Intensely Off-Topic

Lightman

  • Bay Watcher
  • The groboclones are looking for you.
    • View Profile
Re: How difficult is computer programming?
« Reply #36 on: February 20, 2014, 06:01:42 am »

I want to learn C and C++ for a career or a job in computer programming. What are classes like? Are there cheap and effective ways to learn, or is it a "you get what you pay for" sort of thing? Also, how likely is it that there are people in China and India who want my job? I live in the US by the way.

1. In almost anything, you get what you pay for.
2. Lots of people everywhere want a job. That shouldn't decide your choice.

As others have said, learning logic is important. C# can be a good base and carries many similarities in syntax and formatting. Python might help. Really, though, if you want to learn C/C++ then you can start there. Classes depend on the teacher. There are always people willing to help, especially if you make the effort (i.e. read first, ask later). Find good tutorials, dedicate time to programming and see if it's something you actually want to do.

Quote
I want to learn C and C++ for a career or a job in computer programming.

Those languages are going out of fashion quite rapidly. [...] you probably won't need it unless you work in something low level like operating systems or electrical engineering.

That is patently false.
Logged

David Holmes

  • Bay Watcher
    • View Profile
Re: How difficult is computer programming?
« Reply #37 on: February 21, 2014, 08:44:17 pm »

Quote
I want to learn C and C++ for a career or a job in computer programming.

Those languages are going out of fashion quite rapidly. [...] you probably won't need it unless you work in something low level like operating systems or electrical engineering.

That is patently false.

I don't think it's patently false, though it could use a little elaboration.

The domain of problems for which C/C++ make sense has shrunk dramatically from what it was 15 years ago, and continues to shrink. There's a lot of C/C++ code out there so there is a good deal of work, but I would say that for new projects, choosing C/C++ only makes sense if you have realtime performance considerations or need deterministic memory management.  The types of software that need those are a very small percentage of all software.
Logged

Lightman

  • Bay Watcher
  • The groboclones are looking for you.
    • View Profile
Re: How difficult is computer programming?
« Reply #38 on: February 22, 2014, 04:57:03 am »

I don't think it's patently false, though it could use a little elaboration.

The domain of problems for which C/C++ make sense has shrunk dramatically from what it was 15 years ago, and continues to shrink. There's a lot of C/C++ code out there so there is a good deal of work, but I would say that for new projects, choosing C/C++ only makes sense if you have realtime performance considerations or need deterministic memory management.  The types of software that need those are a very small percentage of all software.

Thanks for the reply.  As you suggested, there is plenty of work.  What is patently false is to suggest that it's not viable, especially for a career or that it's only good if you want to work on an OS "or electrical engineering" (the latter of which makes no sense).  It takes no effort to find companies that are seeking people with C/C++ skills.

Games routinely prioritise performance and I can almost guarantee that, in addition to many other games, the vast majority of high-profile games use C++ as the primary language.  As a secondary, they might supplement with Lua (like World of Warcraft).  As I recall, a certain dwarf-themed game uses C++ ;p  I haven't seen any data suggesting that C/C++ is "rapidly going out of fashion", commercially or otherwise.  A cursory scan of SourceForge projects revealed that C/C++ have the highest numbers (when combined).

I think more likely than "dramatic shrinking" of the C/C++ domain is that, in the last 15 years, we've seen a dramatic increase in the programming domain - both programmers and viable languages.  Thanks to the wide array of languages (Java, C#, Objective C, Lua, Python, etc.), more people are able to produce results.  So, I'm happy to concede that people should focus on what works for them and their application.  However, it's simply poor advice to direct someone away from C/C++, particularly regarding a possible career.
Logged

David Holmes

  • Bay Watcher
    • View Profile
Re: How difficult is computer programming?
« Reply #39 on: February 22, 2014, 01:00:52 pm »

I interpreted the "electrical engineering" comment as "programming for microcontrollers" which often requires C/C++ or similarly low-level languages if not assembly.

I wouldn't recommend somebody go learn C/C++ and expect to have a career with that skill set alone.  I'm a C++ developer and I work on a product that basically has to be C++ (it's not an operating system, but it is not far from that level of abstraction). If I had to interview somebody for a job and C++ was the only language on their resume, I'd consider it a red flag for somebody who lacks intellectual capacity or isn't serious about being a software developer.  I expect any programmer to have used at least several languages, with different degrees of abstraction. They could find a job if they're good, but I'd have to wonder what they're doing with their career.

As a corollary I actually think that proficiency in C at least (C++ filling that role adequately) should be considered mandatory for a programmer, regardless of whether you use it for your profession.  People who don't know how to program in C don't really understand what's going on in higher-level languages either.

I agree that games are a suitable use of C++, partly because nobody wants their game to do things like gobble up a pile of memory and then stutter when the garbage collector cleans up its mess.  There is a growing number of successful 3d games in C# and similar languages though, and I actually think C++ is a poor choice for Dwarf Fortress in particular.  I think Dwarf Fortress could have been written in C#, Java, or maybe even something higher-level than those and achieved the same or better success.
Logged

Lightman

  • Bay Watcher
  • The groboclones are looking for you.
    • View Profile
Re: How difficult is computer programming?
« Reply #40 on: February 22, 2014, 09:17:14 pm »

I interpreted the "electrical engineering" comment as "programming for microcontrollers" which often requires C/C++ or similarly low-level languages if not assembly.

That seems like a good interpretation, though the original statement wasn't a good way of conveying that thought.

Quote
I wouldn't recommend somebody go learn C/C++ and expect to have a career with that skill set alone.  I'm a C++ developer and I work on a product that basically has to be C++ (it's not an operating system, but it is not far from that level of abstraction). If I had to interview somebody for a job and C++ was the only language on their resume, I'd consider it a red flag for somebody who lacks intellectual capacity or isn't serious about being a software developer.  I expect any programmer to have used at least several languages, with different degrees of abstraction. They could find a job if they're good, but I'd have to wonder what they're doing with their career.

As a corollary I actually think that proficiency in C at least (C++ filling that role adequately) should be considered mandatory for a programmer, regardless of whether you use it for your profession.  People who don't know how to program in C don't really understand what's going on in higher-level languages either.

I agree that games are a suitable use of C++, partly because nobody wants their game to do things like gobble up a pile of memory and then stutter when the garbage collector cleans up its mess.  There is a growing number of successful 3d games in C# and similar languages though, and I actually think C++ is a poor choice for Dwarf Fortress in particular.  I think Dwarf Fortress could have been written in C#, Java, or maybe even something higher-level than those and achieved the same or better success.

Yes, I agree - C/C++ is a good indicator that someone actually understands programming.  I think most programmers branch out on their own, so I would be curious if someone only knew C/C++.  I am doubtful that it would be a problem for hiring agents that only need C/C++ but it's good to keep in mind.  I think it'd be presumptuous to assume someone couldn't have a career with only C/C++ but the programmers I know tend to have more than one language skill.

Indeed, I know programmers at major developers and I've been told specifically about the GC stuttering problem in C#.  And although I'm a fan of C#, I have to disagree with you about DF.  I think we'd see a significant drop in performance if DF were C#.  Toady seems to be doing fine with C++ and I don't see that as a concern.

There certainly are successful games that use other languages; that's not in question.  However, that's not a good reason to advise someone against C/C++ or claim that it's "rapidly going out of fashion", etc.  Again, that is poor advice.  If the original poster wants to learn C/C++, I'd say to go for it and that it definitely would be useful in a programming career, even if they branch out, later.
Logged

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: How difficult is computer programming?
« Reply #41 on: February 24, 2014, 10:44:04 am »

SNIP

I'd say the biggest problem with the suggestion to start with C++ is that it assumes the learner has 1) unshakeable willpower and 2) will enjoy programming from the start.

D-does that mean I have unshakable willpower and enjoy programming a lot? <3

I started programming with C++ and used it for a long time. I enjoy Python a lot, though, and I despise Java with every fiber of my body.
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: How difficult is computer programming?
« Reply #42 on: February 24, 2014, 02:56:08 pm »

I unwittingly complimented Skyrunner! NOOOOooooooooooooooooooooooooooo :D

But yeah, maybe you're not the majority of people :) Or maybe, if you had started with Python, you'd have gotten further in whatever projects you decided to do :)

I used to hate Java when I was all into C++, 'cause Java was for girls and C++ was for real programmers (the teacher actually said this... *sigh*). Then I actually started using Java and suddenly life was easier :P Though after seeing some features of C# I am becoming interested in it, even though portability suffers a bit.

There's some really neat gamedev support for Java these days though. So yeah, YMMV :)

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: How difficult is computer programming?
« Reply #43 on: February 24, 2014, 08:59:15 pm »

Well sorry for being a girl>:I
I still hate Java because it feels so clunky compared to other more elegant languages. It's not some ideology thing where c++ is a real language and Jaba is for noobs, but more of a "I hate this language's design" thing.
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

Arx

  • Bay Watcher
  • Iron within, iron without.
    • View Profile
    • Art!
Re: How difficult is computer programming?
« Reply #44 on: February 25, 2014, 04:44:52 am »

I've taken to using Java recently both because I'm covering it in a course (so learning to use it guarantees me good marks), and because after a fair bit of dabbling in C++ the tutorial I was following said that if I wanted all my classes to talk to each other I was going to have to sacrifice a live chicken over the keyboard and write the terminal commands on the screen in its lifeblood. I gave up for a while at that point. The tutorial may just have been a not particularly good one, so I'll go back to C++ some time in the future, but for now I'll stick to Java.
« Last Edit: February 25, 2014, 08:48:07 am by Arx »
Logged

I am on Discord as Arx#2415.
Hail to the mind of man! / Fire in the sky
I've been waiting for you / On this day we die.
Pages: 1 2 [3] 4