Codeacademy

Message Bookmarked
Bookmark Removed
Not all messages are displayed: show all messages (254 of them)

nobody in the world has any idea how to teach programming. There is a big computer science education conference every year where CS profs get together and propose new and different ways of teaching programming. Software engineers complain that people graduate with CS degrees without knowing how to work on a big project. People who learned to program entirely on their own and never went to college assume that everybody should be able to do the same. It's just really hard to learn and really hard to teach if you're not predisposed to it.

tinker tailor soldier sb (silby), Wednesday, 1 February 2012 03:33 (twelve years ago) link

so presumably these folks just guessed a way of teaching it like everybody else and decided to see if it works

tinker tailor soldier sb (silby), Wednesday, 1 February 2012 03:36 (twelve years ago) link

iatee, have u started week 3 yet? the whole beginning is crunchy review stuff

Mordy, Wednesday, 1 February 2012 03:40 (twelve years ago) link

yeah I can see how it's a subject that would be particularly difficult to teach, as it's like midway between learning a language and learning a skill
xp
yeah I'm on that atm

iatee, Wednesday, 1 February 2012 03:41 (twelve years ago) link

To learn to program you have to learn the syntax of some made-up language designed to be interpreted by robots as well as how to use an assortment of tools that can be aggressively unfriendly just to be able to do the part where you make the computer do things. To really deeply learn how to program you have to internalize a somewhat daunting set of abstract concepts and how they fit together, along with even more details of the made-up robot language so that when the time comes to turn the structure in your head into code you do it in a way that makes sense and isn't tortured.

Here I"ll say something encouraging though: it is totally possible to learn to program; my best guess is that to learn, it is necessary (but perhaps not sufficient) to do a whole lot of it, and you have to start trying to work on things you actually want to make as soon as possible. The next time you are about to do some inane repetitive task on your computer, consider whether you know enough about programming to automate that task. Or just try to automate it. The first time you spend ten minutes writing a script to save yourself thirty minutes of changing filenames one at a time, you're a programmer. The first time you spend two hours writing a script to save yourself thirty minutes doing something, you're a guru.

tinker tailor soldier sb (silby), Wednesday, 1 February 2012 04:04 (twelve years ago) link

employment-wise it seems like it would be a good idea to learn vba, tho programmers seem to hate that for some reason?

iatee, Wednesday, 1 February 2012 04:10 (twelve years ago) link

It's sort of one of those things where like a lot of small businesses used to (or still, ye gods) run on the back of an Excel spreadsheet or Access database with a bunch of VBA spaghetti logic inside it that someone wrote in the misty past. This person also usually failed to document what was happening and then died. At least such is the folklore. So it's not exactly a "growth technology" I shouldn't think, but if you find yourself in a place where everything depends on keeping an ancient Windows 98 machine with the critical business app on it alive, you might save the day with VBA. But you could save the day better in most of these cases by, like, signing up for Salesforce or something.

tinker tailor soldier sb (silby), Wednesday, 1 February 2012 04:17 (twelve years ago) link

ah that makes sense

iatee, Wednesday, 1 February 2012 04:19 (twelve years ago) link

so the real answer is, learn whatever tool is best-suited for something you need or want to do *right now*. JavaScript is built in to every web browser, so Code Year doesn't have to do any weird server-side trickery to let you program in it. And as a beginner, JavaScript is really well-suited for creating neat little interactive things using a web page as your canvas. If what you want to do right now is just start programming, go with whatever seems sufficiently easy, fun, well-guided, gamified, whatever.

tinker tailor soldier sb (silby), Wednesday, 1 February 2012 04:23 (twelve years ago) link

also, it seems like there are odds problems with the way they have it set up since you have an equal chance of getting a face card and getting, say, a '9' card, when getting a card that equals '10' should happen 4 times more often than getting one that equals '9'

i thought what they did seemed okay. you're getting a random 1-52 number moldulo 13, and then 0, 11, and 12 are all face cards and 10 is a 10 card. You end up with 16 "cards" that can give you a value of 10 and 4 that can give you a value of 9.

they did still have the program dealing both cards from a full deck instead of the first from a full deck and the second from a deck with the 1st card taken out. but then it'd be more complicated and they're probably saving that for another week.

circles, Wednesday, 1 February 2012 04:57 (twelve years ago) link

> they did still have the program dealing both cards from a full deck

but that's ok - think of the shoes in vegas that hold multiple decks...

koogs, Wednesday, 1 February 2012 09:46 (twelve years ago) link

I completely forgot this was still on this week.

I do some VBA at work and I'd say there isn't much of a job market for just doing VBA, but in a general office IT job you can get people to look at you like you have magical powers if you can roll a macro to stick 30 spreadsheets together, or just know your way round worksheet formulae (not even VBA!) to any extent.

There used to be Access SQL+VBA jobs around but I think a lot of people are now going with e.g. MySQL and a simple web framework for the minor database tasks they would once have used Access for. The only Excel VBA jobs I see are for financial work in city jobs, but financial number-wrangling I know v. little about and it has 0 interest to me, plus I suspect city finance firms are shitty to work for in a non-financial role, so I've never really looked into those.

I hearrrd MS is talking about completely replacing VBA with something else anyway but I forget which grapevine that came from.

Schleimpilz im Labyrinth (a passing spacecadet), Wednesday, 1 February 2012 13:12 (twelve years ago) link

it is totally possible to learn to program

I am living testament -- got my BA in English, now working as a programmer (though not yet a software engineer).

omar leeettle (Leee), Wednesday, 1 February 2012 19:06 (twelve years ago) link

it's still really early in the year, but so far codecademy is making me feel like i made a mistake not doing comp sci in college.

Mordy, Wednesday, 1 February 2012 19:52 (twelve years ago) link

The first time you spend two hours writing a script to save yourself thirty minutes doing something, you're a guru.

<3 this

≧^◡^≦ moon dayo (diamonddave85), Wednesday, 1 February 2012 20:38 (twelve years ago) link

ya

i'm being advised that if i'm to start at all i'm to start with either c# or html5 anyone with any thoughts care to share em?

flags post o fu (darraghmac), Wednesday, 1 February 2012 20:47 (twelve years ago) link

C# and HTML5 are v different things afaik - do you want to code or do you want to make webpages?

Others are better placed than I to comment, but I've never seen a job ad that specifies knowledge of C# as opposed to a more common language like C/C++ or Java. I don't know what penetration it has in industry. That said, a lot of what you learn in one language will transfer over to others and make them easier to pick up.

two lights crew (seandalai), Thursday, 2 February 2012 00:51 (twelve years ago) link

the recommender is a very highly paid IT professional who's been on at me for some years now to take the plunge, tbh i don't know what he has in mind for me i think he just pities me and wants to employ me

flags post o fu (darraghmac), Thursday, 2 February 2012 00:58 (twelve years ago) link

C# is Microsoft's object-oriented superset of C for the .net framework, like Objective-C is for Mac and iOS development. So it is useful for developing applications for Windows, pretty much.

HTML 5 refers to the most recent specification for the markup language that Web pages are built with, and by metonymy serves as a brand of sorts for a bunch of recent developments in Web standards designed to make it easier to build rich client side Web applications without the use of proprietary extensions like Flash or Silverlight. HTML per se isn't a programming language.

tinker tailor soldier sb (silby), Thursday, 2 February 2012 02:51 (twelve years ago) link

what silby said.

i'd go for something more cross-platform. probably java (which i think still has a lot of life in it, despite oracle's recent efforts). probably not c, which i grew up on, but which lacks things like hashes which java has a standard library for. and not c++ or c# due to learning curve.

as for scripting languages, which is slightly different, people here swear by python, but i hate the forced indenting and lack of markers for the ends of blocks. i prefer php (as i'm an old c programmer) for anything that i can't do in bash.

javascript is a good choice to learn with - available everywhere, easy to see results. lacks a decent debugger though.

koogs, Thursday, 2 February 2012 09:46 (twelve years ago) link

heh i can't even understand the answers but thanks

flags post o fu (darraghmac), Thursday, 2 February 2012 10:28 (twelve years ago) link

There are tons of jobs for C# programmers in London, dunno about elsewhere. I've done a bit of work with it but I generally prefer Python unless it makes specific sense to use C# (e.g. SQL Server CLR functions)

I <3 forced indenting though

The Eyeball Of Hull (Colonel Poo), Thursday, 2 February 2012 10:42 (twelve years ago) link

http://learnpythonthehardway.org/

am0n, Thursday, 2 February 2012 16:10 (twelve years ago) link

^ this book is awesome

BIG HOOS aka the steendriver, Friday, 3 February 2012 05:41 (twelve years ago) link

javascript is a good choice to learn with - available everywhere, easy to see results. lacks a decent debugger though.

Do you need a full-fledged debugger though? For most development purposes, I get by fine with Firefox + Firebug. (Then, I'm hardly a JS jockey.)

omar leeettle (Leee), Friday, 3 February 2012 06:23 (twelve years ago) link

I think I hit the "okay, bored now" point of this by the end of the second course

Nhex, Monday, 6 February 2012 05:24 (twelve years ago) link

Reminds me as usual that while i love the power of programming, the nitty gritty - figuring out why this parentheses or that equal sign is missing somewhere - even with the debugger - is always such a drag

Nhex, Monday, 6 February 2012 05:25 (twelve years ago) link

That comment about Excel macros above is like super otm, though

Nhex, Monday, 6 February 2012 05:26 (twelve years ago) link

the 2nd course is poorly designed compared to the rest. there have def been a lot of improvements. I can see this site being a pretty big success story eventually and this early run as being 'lol we didn't know what we were doing'

iatee, Monday, 6 February 2012 12:06 (twelve years ago) link

yay, new week of stuff. (really the only thing making my Mondays tolerable at this moment.)

so, besides iatee + me, which other ilxors are still doing this?

Mordy, Monday, 6 February 2012 18:52 (twelve years ago) link

i'm two wks behind now but i really do want to get back on track!

call all destroyer, Monday, 6 February 2012 18:57 (twelve years ago) link

still on this, hope to look at this week's in an hour or two

Schleimpilz im Labyrinth (a passing spacecadet), Monday, 6 February 2012 20:28 (twelve years ago) link

if i keep this thread bookmarked it's good harassment--i've done most of conditionals in the last 45 mins.

call all destroyer, Monday, 6 February 2012 21:19 (twelve years ago) link

still on this, hope to look at this week's in an hour or two
― Schleimpilz im Labyrinth (a passing spacecadet), Monday, 6 February 2012 20:28 (1 hour ago)

still on this, hope to look at this week's... tomorrow

Schleimpilz im Labyrinth (a passing spacecadet), Monday, 6 February 2012 21:54 (twelve years ago) link

For anyone who has done Building an Address Book, I solved 1.6 by doing this with the prompts at the end:

add(prompt("First Name?"), prompt("Last Name?"), prompt("Email?"), prompt("Telephone?"));

It worked, but I notice that the hints suggest:

You can use the following syntax with the prompt function: var <response> = prompt(question);

And everyone else who did it in the Q&A did it like the hints suggest, ie: by creating 4 variables using prompts and then calling those 4 variables in the add statement. My question is: Is the way I did it legitimate (It did work), or is it just a bug in the program that let it work and that kind of coding shouldn't actually be valid?

Mordy, Friday, 10 February 2012 02:42 (twelve years ago) link

Do you know why your way works?

tinker tailor soldier sb (silby), Friday, 10 February 2012 03:00 (twelve years ago) link

Well, I know why I tried it thinking it might work. The prompt calls for an answer that becomes the parameter for the function. I just figured that instead of defining a bunch of variables as prompts and then running the function, I could just put the variables directly in the parameters.

Mordy, Friday, 10 February 2012 03:08 (twelve years ago) link

(And it did seem to work the way I intended it to.)

Mordy, Friday, 10 February 2012 03:09 (twelve years ago) link

I think my explanation there was really ineloquent but hopefully you understand what I'm trying to say.

Mordy, Friday, 10 February 2012 03:10 (twelve years ago) link

So given that it works what makes you suspicious?

tinker tailor soldier sb (silby), Friday, 10 February 2012 03:56 (twelve years ago) link

No one else doing the exercise seems to have arrived at that solution, and the designers seem to have intended a different solution.

Mordy, Friday, 10 February 2012 04:02 (twelve years ago) link

Well if that's all then no you didn't do anything wrong per se by doing it the way that you did. There are situations where it would be "bad style" to do it that way probably, and there might even be programming languages where that wouldn't work, but using the results of function calls directly as function parameters is legit!

Thought experiment: what are some ways your solution could go wrong if JavaScript functions worked differently than they do?

tinker tailor soldier sb (silby), Friday, 10 February 2012 04:06 (twelve years ago) link

this week was def a step up in difficulty

I think this site will be a major success

iatee, Sunday, 12 February 2012 23:29 (twelve years ago) link

woo. done this week.

Mordy, Tuesday, 14 February 2012 20:45 (twelve years ago) link

2.4 this week is giving me a "That's correct!" but no "Next Exercise", grr.

Sort of feeling my patience wearing a bit thin. I think I find Javascript's syntax for object-oriented stuff a bit confusing, maybe because I've dabbled a (very) little w/Java but haven't really done any serious OO work. Interested to know if this makes more sense to people who are new to programming.

Dunno if it's because of that or because of the drip-learning method and not looking at it for a week in between but I feel like every time I'm only just remembering enough to scrape together the one or two lines required for each task and couldn't actually put together any real code on my own.

On the other hand, the big secret of programming and the only reason I get paid is you can go a surprisingly long way on not knowing what you're doing but kludging it together line by line until it compiles and you think "I wasn't expecting this to work yet, but it's giving me the right answers".

Schleimpilz im Labyrinth (a passing spacecadet), Thursday, 23 February 2012 22:52 (twelve years ago) link

the entire secret to writing code is to redefine the problem into its smallest, simplest units, write those, and then start combining things logically until voila! you have a program

if you can think/design in those terms, things become less daunting

robbery by sudden snatching (DJP), Thursday, 23 February 2012 22:55 (twelve years ago) link

(Actually I've just noticed it's ticked my 2.4 anyway so I may as well just manually go to the next section. Still feeling kind of joyless this week but maybe that's just me.)

I think what first drew me to programming is that I have a very can't-see-wood-for-trees approach: I like building things up line by line and being surprised when I have a forest because, oh, I was totally expecting to have to put some weevils under that fungus, does it really look like a forest already?

but it turns out that when people want to pay you for programming, or when you just want something that does more than amuse you and you alone for an hour or two, you need to look at it from the other end too: the boss wants a forest, what 4 main sections does it need? where are the paths between them? etc. and that's the part I'm not so good at.

also, the part where every year you have to spend your free time learning how to burn your forest down and start over with this year's new, hip kind of trees, because if you neglect to do that for 3 years running you're unemployable.

(I'm not good at metaphors either, you may have noticed)

Schleimpilz im Labyrinth (a passing spacecadet), Thursday, 23 February 2012 23:05 (twelve years ago) link

totally expecting to have to put some weevils under that fungus, does it really look like a forest already?

this might not make sense, so: most of my day job is munging sets of data input by bored, inconsistent humans, and I have SO many times thought "ok, if I do x and y it'll work on 95% of my data, and then I'll need fiddly special case z", and I've done a first pass with x and y only to find that that does in fact cover everything, special case z does not exist in my million records

I realise that if I was building software for anyone else to use all the special cases need covered, because one day someone's going to press the buttons in the wrong order and lose a day's work

(but it's not just a data-wrangling thing, either - when I was a kid I started a crappy 2d platform game, and when I put the jumping code in I just went "uhh for now I'll increment y every frame for 20 frames, then I'll decrement it again, and that's going to suck, but I'll take a look at it before I start worrying about parabolas", but it turned out to have a perfectly adequate jump-feel as it was)

sorry for tl;dr, will shut up and go to bed now

Schleimpilz im Labyrinth (a passing spacecadet), Thursday, 23 February 2012 23:17 (twelve years ago) link

(Chucky Egg did well enough using the increment / decrement thing iirc. and Manic Miner's parabolic jumps looked great but were annoyingly 1 pixel slower than walking)

koogs, Friday, 24 February 2012 08:11 (twelve years ago) link

oh my god so buggy this week. typos, poorly explained lessons, and on 6:2 in recursion you have to reload your browser to get the proper code to work. WTF.

Mordy, Friday, 24 February 2012 14:56 (twelve years ago) link


You must be logged in to post. Please either login here, or if you are not registered, you may register here.