New to Coding

A place to discuss the implementation and style of computer programs.

Moderators: phlip, Prelates, Moderators General

Re: New to Coding

Postby thoughtfully » Thu Jan 13, 2011 4:27 am UTC

I don't know what links you followed or simply misunderstood, but Python is, and always has been, free, as in "gratis", but also as in "speech": open source software.
http://www.python.org/download/

Also, click this one for help getting started:
http://wiki.python.org/moin/BeginnersGuide
Image
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery
User avatar
thoughtfully
 
Posts: 2083
Joined: Thu Nov 01, 2007 12:25 am UTC
Location: Minneapolis, MN

Re: New to Coding

Postby GarryRicketson » Sat Jan 15, 2011 2:08 pm UTC

thoughtfully wrote:I don't know what links you followed or simply misunderstood, but Python is, and always has been, free, as in "gratis", but also as in "speech": open source software.
http://www.python.org/download/
Also, click this one for help getting started:
http://wiki.python.org/moin/BeginnersGuide


Ok , thank you, I don't remember, I think I had done a google search,..but anyway thanks for the links. P.S. I just went to the link python.org ,and downloaded the windows installer,
Thanks a bunch, The site sure is alot different then the one that I had gone to.
from Garry
From Garry
To see more about me feel free to visit my website:
http://www.garryspages.webs.com
A forum for begginers usein qb64
http://weeklyqbasicandqb64lesson.smfforfree.com
User avatar
GarryRicketson
 
Posts: 19
Joined: Mon Nov 29, 2010 12:37 am UTC
Location: Cuencame,Dgo.Mex.

Re: New to Coding

Postby Bharrata » Sun May 15, 2011 8:11 pm UTC

I'm curious to know if any of the veteran coders have any opinions on "natural language" code, such as Inform, as an entry point into programming. I'm attempting to teach myself HTML5 and Javascript over the summer and it'd be nice to know if there's any other major languages which are more conducive to self-teaching after grasping the basics of natural language - as in, pounding my head into the wall after spending 40 minutes not understanding that there's a difference to microchips between the phrases "initial appearance" and "initial description". :|

I'm assuming, without evidence yet, that programming, in every language, is about understanding how the computer interprets your structuring of clauses and the information therein, or is that not quite it?
Bharrata
 
Posts: 233
Joined: Sun May 15, 2011 7:57 pm UTC

Re: New to Coding

Postby Ace of Anton » Sun May 22, 2011 5:47 pm UTC

I'm a highschool student who is entirely new to programming. Two years ago, I attended an idTech summer camp for C++ and Java at Purdue University and got a lot of badly organized, confusing, and unhelpful information that has hindered my attempts to continue learning about these subjects. I have a love of physics and such sciences, and it would be my dream to merge programming and physics by writing programs the can model complex systems and interactions. What kind of programming languages should I look into?
User avatar
Ace of Anton
 
Posts: 1
Joined: Sun May 22, 2011 5:32 pm UTC

Re: New to Coding

Postby stevecrox » Sun Jun 05, 2011 3:53 pm UTC

C is the best language to learn initially, because it forces you to understand all of the concepts involved in programming. I spend most of my time programming in Java and explaining to graduates (who only did Java in Uni) that Java has pointers (and what a pointer is) and memory leaks etc... So I'd recommend learning C/C++ first and keeping with simple projects like making a connect 4 game, 2 way chat program that works via a RS232 port, a calculator, etc... Nothing complicated.

If your looking to do physics/math simulation MATLAB is the tool you will have to learn to use, its used heavily by industry and is quite brilliant once you get the hang of it. There are thousands of free plug-ins to help do all sorts of simulations. If you don't have the cash to spring for a copy of Matlab then Java is probably your friend, its not as as quick as C++ but it takes less code to do things, the syntax is largely similar and there are loads of open source libraries to call on.

But learn C first, whenever we have people from Java/Python backgrounds someone in the team has to spend days explaining basic principles. Python/Ruby/Perl/Javascript all have their advantages but they are very high level and aren't type safe this can lead to bad habits (all Perl/PHP code I've run across can only be understood by its author).
stevecrox
 
Posts: 5
Joined: Tue Oct 14, 2008 9:18 pm UTC

Re: New to Coding

Postby EvanED » Sun Jun 05, 2011 5:58 pm UTC

stevecrox wrote:C is the best language to learn initially, because it forces you to understand all of the concepts involved in programming.

C is the worst language to learn initially, because it forces you to learn and worry about a lot of crap that's incidental to the main challenge in learning programming: understanding the problem at a detailed enough level that you can actually program it in any language then figuring out how to break down the problem and come up with the algorithm.

You'll notice that nowhere in there did i say "manage memory manually" or "understand what the machine is doing at a low level" or "deal with string handling that's about as fun as pulling teeth".

Python/Ruby/Perl/Javascript all have their advantages but they are very high level and aren't type safe this can lead to bad habits (all Perl/PHP code I've run across can only be understood by its author).

Perl and PHP code is... sort of a special case, but Python code tends to be reasonably clean. And it's not like C code is typically a paragon of good practice.

Fact is, there is no one "best language" to learn initially. It depends on what your goals are. I tend to think that it takes a fairly particular situation for C to be best though, and other choices are usually better.
EvanED
 
Posts: 4097
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI

Re: New to Coding

Postby stevecrox » Sat Jun 11, 2011 11:49 am UTC

I never said do anything particularly complicated in C but learn your first programs in C. Because understanding machine works at a low level is integral to programming.

Figuring out solutions is important, creating a decent algorithm is important but you don't need to know any form of programming to come up with an algorithm. I'd argue you should learn how to do that without coding examples since it is pure mathematics.

Learning how to write code involves understanding how the computer works. I have a whopping 3 years industry experience so I usually get dumped with looking after the graduates and apprentices. I will usually have to spend a great deal of time teaching them about pointers since they only learnt Java or Python or some such. This isn't because I feel like it, its usually because they have done something funky with lists or maps and trying to explain what's happened when they don't understand what a pointer is, is impossible. The other reason is for code efficiency, C forces you to do everything the long way so you understand when your making a get, a put or an add what's actually going on.

For example in Java if you don't understand the underlying concepts how do you choose between a LinkedList, ArrayList, Vector, Set, HashSet, LinkedHashSet, TreeSet, etc... Sure understanding the mathematics helps but would a HashMap be better than a HashSet? Why is creating an ArrayList of size 0 a bad idea when you now the maximum possible size of the list? Why doesn't that matter for LinkedLists?

Learning how to make a C hello world application and other basic stuff only takes a couple afternoons but every book on doing that sort of stuff does ground you in the basics. I'm not talking about understanding malloc, or the difference between allocating on the heap or on the stack.

I should say I dislike C, I much prefer to code in Java.
stevecrox
 
Posts: 5
Joined: Tue Oct 14, 2008 9:18 pm UTC

Learning Coding Videos

Postby jfbeltran » Thu Jun 16, 2011 5:12 am UTC

I just came across this, please give it a try, the resources are AMAZING.
(There is no longer an excuse to not learn how to code)

http://www.makeuseof.com/tag/14-youtube ... g-quickly/

JF

EDIT:
Also, I really recommend the Python Challenge if you need some practice (it should be challenging both for beginners and fluent python programmers :) )

http://www.pythonchallenge.com
User avatar
jfbeltran
 
Posts: 6
Joined: Mon Mar 07, 2011 8:51 am UTC

Re: New to Coding

Postby jpk » Tue Jul 12, 2011 4:57 am UTC

EvanED wrote:C is the worst language to learn initially, because it forces you to learn and worry about a lot of crap that's incidental to the main challenge in learning programming: understanding the problem at a detailed enough level that you can actually program it in any language then figuring out how to break down the problem and come up with the algorithm.


I don't know if I'd go right to "C is the best language to learn initially" but it's far from a bad choice, far ahead of Python, precisely because it forces you to understand what the machine is doing. You'll want to get past it after you get the hang of it, but it gives you a lot of mental training that Python just won't give you.
You might think you'll start with Python and go back and learn that stuff - you won't. And it won't kill you, but knowing the mechanical details of memory management and having to write your basic data structures in a hard language will make you understand what Python does for you- and which operations hide real hard work, and which don't. While you're at it, if you're going to learn Python you should probably go through a book called the Little Schemer and get a solid grounding in some basic Lisp logic. That stuff is right there in Python, and you'll make better use of it if you spend a little time understanding it.
jpk
 
Posts: 606
Joined: Sat Nov 13, 2010 7:33 am UTC

Re: New to Coding

Postby RoadieRich » Tue Jul 12, 2011 5:13 am UTC

jpk wrote:You might think you'll start with Python and go back and learn that stuff - you won't.

That's a load of rubbish. I learned python first, and I'm now doing a C++-based degree.

When you're learning to write code, you don't want to worry about little details like "will this fit in there". You're more worried about "how do I put this in there". Learning C++, you spend more time making you code work than you do making your program work. Learning a language like python lets you concentrate on making your program work - a skill which transfers easily to any other language. Remembering if you need a float or a double, or how a union works? That's a much smaller set of languages.
roband wrote:Mav is a cow.

UniJam 2012: Inter-university Games Jam hosted by Nottingham Trent University DevSoc.
nlug: Nottingham Linux User Group
DevSoc: The Nottingham Trent University Software Development Society
User avatar
RoadieRich
The Black Hand
 
Posts: 1030
Joined: Tue Feb 12, 2008 11:40 am UTC
Location: Somewhere only we know

Re: New to Coding

Postby EvanED » Tue Jul 12, 2011 1:09 pm UTC

jpk wrote:
EvanED wrote:C is the worst language to learn initially, because it forces you to learn and worry about a lot of crap that's incidental to the main challenge in learning programming: understanding the problem at a detailed enough level that you can actually program it in any language then figuring out how to break down the problem and come up with the algorithm.


I don't know if I'd go right to "C is the best language to learn initially" but it's far from a bad choice, far ahead of Python, precisely because it forces you to understand what the machine is doing.

That's not worth it! Not from the start, not for most people.

You might think you'll start with Python and go back and learn that stuff - you won't. And it won't kill you, but knowing the mechanical details of memory management and having to write your basic data structures in a hard language will make you understand what Python does for you- and which operations hide real hard work, and which don't.

Like RoadieRich says, BS. If don't go beyond Python, then you wouldn't have gotten very far if you start with a language like C from the get-go.

While you're at it, if you're going to learn Python you should probably go through a book called the Little Schemer and get a solid grounding in some basic Lisp logic. That stuff is right there in Python, and you'll make better use of it if you spend a little time understanding it.

Hey, that's also a fine choice (though I'd substitute out The Little Schemer for SCIP). CMU does their intro class in SML, and while I'd probably substitue out "S" for "O'Ca", that's also a good choice. Python is far from the only option -- but I do think that for a significant majority of people, starting with a high-level language is the way to go.

(Stanford is apparently switching to Javascript. It's not a great choice IMO, but it isn't awful either. They're switching from Java though, so that makes the change more attractive than if they were going Scheme to Javascript or something like that.)
EvanED
 
Posts: 4097
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI

Re: New to Coding

Postby phlip » Tue Jul 12, 2011 1:52 pm UTC

Guys, let's not have this argument here. There's a thread in Religious Wars for that.
While no one overhear you quickly tell me not cow cow.
but how about watch phone?
User avatar
phlip
Restorer of Worlds
 
Posts: 7141
Joined: Sat Sep 23, 2006 3:56 am UTC
Location: Australia

Re: New to Coding

Postby Ptharien's Flame » Wed Jul 13, 2011 9:44 pm UTC

Just wanted to put Haskell out there. Also, DarkBASIC Pro of you're doing game programming on Windows. This may be my own aversion to OO languages, however. :oops:
Ptharien's Flame
 
Posts: 34
Joined: Tue Jun 28, 2011 4:23 am UTC

Re: New to Coding

Postby Tomlidich » Mon Sep 19, 2011 9:44 pm UTC

tried to learn c++ a few months ago, completely gave up cuz it made me wanna blow my brains out, now i am learning python and sticking to it. its nice.

im new btw.
User avatar
Tomlidich
 
Posts: 462
Joined: Mon Sep 19, 2011 8:15 pm UTC

Re: New to Coding

Postby Wiskie » Sun Jan 22, 2012 5:10 am UTC

I really hope someone stumbles upon this since it looks as though the last post was from quite a while ago...

Let's say I'm looking to learn programming in general, but my first long-term goal is learning how to make simple, side-scroller, flash-style games not unlike those you could find pretty much anywhere on the internet. Would it make more sense to try something like BlitzMax or DarkBASIC where the purpose of the language is game-making, or would I be better off learning Python (which is basically the only other language that's been recommended to me for this kind of thing)?

I have no prior experience in programming.
"Today we wield both kind of uncleftish doings in weapons, and kernelish splitting gives us heat and bernstoneness. We hope to do likewise with togethermelting, which would yield an unhemmed wellspring of work for mankindish good gain."
User avatar
Wiskie
 
Posts: 17
Joined: Thu Jan 19, 2012 3:24 am UTC

Re: New to Coding

Postby thoughtfully » Sun Jan 22, 2012 6:34 am UTC

Tomlidich wrote:tried to learn c++ a few months ago, completely gave up cuz it made me wanna blow my brains out, now i am learning python and sticking to it. its nice.

im new btw.

Even experienced programmers can feel this way about C++ sometimes :)
And welcome!
Wiskie wrote:I really hope someone stumbles upon this since it looks as though the last post was from quite a while ago...

Let's say I'm looking to learn programming in general, but my first long-term goal is learning how to make simple, side-scroller, flash-style games not unlike those you could find pretty much anywhere on the internet. Would it make more sense to try something like BlitzMax or DarkBASIC where the purpose of the language is game-making, or would I be better off learning Python (which is basically the only other language that's been recommended to me for this kind of thing)?

I have no prior experience in programming.

I'm not really familiar with those others, but Python is a great general purpose language that will serve you well in many situations. Plus, it's got PyGame, which should suit your purposes nicely.
Last edited by thoughtfully on Sun Jan 22, 2012 6:37 am UTC, edited 1 time in total.
Image
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery
User avatar
thoughtfully
 
Posts: 2083
Joined: Thu Nov 01, 2007 12:25 am UTC
Location: Minneapolis, MN

Re: New to Coding

Postby Jplus » Mon Jan 23, 2012 12:27 pm UTC

Wiskie: I second thoughtfully, Python is probably the best possible advice in your case. There are tons of other options, but they're either not general purpose (e.g. JavaScript, BlitzMax, Actionscript, GameMaker) or not as friendly to beginners (e.g. C++, Java, C#) or much less convenient for making games (e.g. Erlang, Lisp, Haskell...). Only Ruby, Scala and Groovy would be similar to Python in this regard. I don't know about any strong reason to prefer one over the other, but Python has the largest community behind it by far.
Feel free to call me Julian. J+ is just an abbreviation.
Image coding and xkcd combined
User avatar
Jplus
 
Posts: 1527
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: classified

Re: New to Coding

Postby Wiskie » Mon Jan 23, 2012 10:14 pm UTC

Ah, many thanks to you both! Python it is.

Now, if only I could find time to get started during the school year...
"Today we wield both kind of uncleftish doings in weapons, and kernelish splitting gives us heat and bernstoneness. We hope to do likewise with togethermelting, which would yield an unhemmed wellspring of work for mankindish good gain."
User avatar
Wiskie
 
Posts: 17
Joined: Thu Jan 19, 2012 3:24 am UTC

Re: New to Coding

Postby Anna Libertas » Sun Jan 29, 2012 1:57 am UTC

I'm new to programming and have been using codecademy's lessons, which are mainly in JavaScript. It is a great resource but I was wondering if there was any other good places I should look at.
Anna Libertas
 
Posts: 1
Joined: Fri Jan 27, 2012 2:39 am UTC

Re: New to Coding

Postby thoughtfully » Mon Jan 30, 2012 2:08 am UTC

If you think Python might be something you'd like to work on, there's a page full of links to resources on the Python wiki:
http://wiki.python.org/moin/BeginnersGu ... rogrammers
Image
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery
User avatar
thoughtfully
 
Posts: 2083
Joined: Thu Nov 01, 2007 12:25 am UTC
Location: Minneapolis, MN

Re: New to Coding

Postby jpk » Tue Jan 31, 2012 5:21 am UTC

Anna Libertas wrote:I'm new to programming and have been using codecademy's lessons, which are mainly in JavaScript. It is a great resource but I was wondering if there was any other good places I should look at.


Whatever language you decide to learn, you should find your way to the euler project at some point. Very useful exercises, and a good place to go back to when you're learning a new language. If you've already solved a tricky problem in one language, it becomes a nice benchmark exercise for your next language, and these are small enough to be good benchmarks.
jpk
 
Posts: 606
Joined: Sat Nov 13, 2010 7:33 am UTC

Re: New to Coding

Postby Jplus » Tue Jan 31, 2012 2:12 pm UTC

I second the above.
Feel free to call me Julian. J+ is just an abbreviation.
Image coding and xkcd combined
User avatar
Jplus
 
Posts: 1527
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: classified

Re: New to Coding

Postby Ninjatwinkie13 » Thu Feb 16, 2012 3:53 am UTC

So I have a SOMEWHAT different reply... So game development is in my sights, but I'm abit late in the game (see what I did there?.. nevermind). I've done VERY little in Java and have been working with C++ for the past week (writing some basic stuff and I'm soaking in the information pretty well). My problem is I know absolutely nothing about computers. The easy solution sounds like get a book or 10, which would be simple enough. The problem is I kind of know what I want to learn (understand a computer, how coding works, etc.) but I have no idea what that entails... I have no idea how to get into game development, and it does sound abit out of reach, but I would at least like to know what's on the hook before I start trying to reel it in.
Thanks!
Ninjatwinkie13
 
Posts: 2
Joined: Thu Feb 16, 2012 3:28 am UTC

Re: New to Coding

Postby Jplus » Thu Feb 16, 2012 10:38 am UTC

So, er... what exactly is your question?
Feel free to call me Julian. J+ is just an abbreviation.
Image coding and xkcd combined
User avatar
Jplus
 
Posts: 1527
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: classified

Re: New to Coding

Postby Steax » Thu Feb 16, 2012 10:48 am UTC

Games? Are you just interested in the programming, or also game design? I often find excessively excited programmers who try to also do game design, which usually doesn't end well, so I usually ask this question first and foremost.
In Minecraft, I use the username Rirez.
User avatar
Steax
SecondTalon's Goon Squad
 
Posts: 3037
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: New to Coding

Postby Shivahn » Thu Feb 16, 2012 6:21 pm UTC

Where does one learn about game design?

As I've mentioned in other places, I have ideas, but don't have the theoretical background to know if they're terrible. If there's a good place to learn about design I'd like to hear about it.
User avatar
Shivahn
 
Posts: 2187
Joined: Tue Jan 06, 2009 6:17 am UTC

Re: New to Coding

Postby phlip » Fri Feb 17, 2012 12:04 am UTC

Extra Credits has some tips (and all the rest of their videos are good too).
While no one overhear you quickly tell me not cow cow.
but how about watch phone?
User avatar
phlip
Restorer of Worlds
 
Posts: 7141
Joined: Sat Sep 23, 2006 3:56 am UTC
Location: Australia

Re: New to Coding

Postby Steax » Fri Feb 17, 2012 2:18 am UTC

Game design is a kludge of User Experience design, storytelling, and graphic design. It's all about coaxing people to do stupid stuff and gain emotional benefits from it. It's also about telling a story (ain't got no game without a story). And it's also about ensuring it's appealing - not just the art, but the gameplay.

Probably the best advice I can give for game designers: get friends or a team to help you sane-check your game. Not everyone has to code, but feedback is downright critical in game design. It's very easy for mass players to like the game in a completely different way than the designer, which is actually to blame for a million stupid games. So yeah, get a community or friends or whatever. Build together.
In Minecraft, I use the username Rirez.
User avatar
Steax
SecondTalon's Goon Squad
 
Posts: 3037
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: New to Coding

Postby EvanED » Fri Feb 17, 2012 8:11 pm UTC

Steax wrote:It's also about telling a story (ain't got no game without a story).

While I'm a fan of story-based games as the next guy, I don't buy that it's necessary.

What's chess's story? What's Tetris's story?

Even some excellent games that nominally have story elements are better if you ignore it, like Braid. </flamebait>
EvanED
 
Posts: 4097
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI

Re: New to Coding

Postby Steax » Sun Feb 19, 2012 7:34 am UTC

EvanED wrote:
Steax wrote:It's also about telling a story (ain't got no game without a story).

While I'm a fan of story-based games as the next guy, I don't buy that it's necessary.

What's chess's story? What's Tetris's story?

Even some excellent games that nominally have story elements are better if you ignore it, like Braid. </flamebait>


Thing is, 99% of people going into game development already have giant sprawling MMORPGs going in their heads. (Which I tend to be quick to shoot down)
In Minecraft, I use the username Rirez.
User avatar
Steax
SecondTalon's Goon Squad
 
Posts: 3037
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: New to Coding

Postby Ninjatwinkie13 » Tue Feb 21, 2012 2:57 am UTC

I'm on the fence about computer science and game development, but my real question was how do I really start learning this stuff... I don't really know that much about computers and I don't know really what KIND of books to buy... I don't know what some of these things entail, but I'm looking into the more coding + problem solving aspect of computer science... That's pretty broad... but I really just don't know as much as I would like about the field...
Ninjatwinkie13
 
Posts: 2
Joined: Thu Feb 16, 2012 3:28 am UTC

Re: New to Coding

Postby Steax » Tue Feb 21, 2012 3:08 am UTC

Okay, so coding it is.

Python is a favorite of pretty much everyone here, and you can pick up excellent libraries for making games through it. If you're that new, you should learn basic programming skills first; an important part of programming is understanding how the commonly accepted patterns work. Books are great, but nothing beats direct experimenting and making stuff. See if you can take classes to learn the basics of programming, since classes allow you to have a mentor that can hopefully teach you the basic skills. You will need to learn problem-solving, workflows, version control, and other topics which can be a challenge to learn from scratch.

While there are great books for python (and pretty much any language), I suggest going through the online documentation first and foremost. Then you can pick up books to see how other people do it. Books get outdated quickly, and only show you one person's perspective.
In Minecraft, I use the username Rirez.
User avatar
Steax
SecondTalon's Goon Squad
 
Posts: 3037
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: New to Coding

Postby Jplus » Wed Feb 22, 2012 11:09 pm UTC

As for problem solving in a way that isn't directly coupled to a particular programming language: in a later stage, you could grab a textbook on algorithm design. But first learn Python, as Steax suggested.

I still don't see why you seem to believe that you need to understand how computers work, though. When you write a program, your programming language and APIs usually abstract away so much of the computer that it doesn't really matter what kind of machine you're working on. You're just working with some abstract model of a computer, and there isn't anything more you need to know about that than just what any mainstream programming language will let you do.
Feel free to call me Julian. J+ is just an abbreviation.
Image coding and xkcd combined
User avatar
Jplus
 
Posts: 1527
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: classified

Re: New to Coding

Postby Shivahn » Thu Feb 23, 2012 12:35 am UTC

I'm gonna go a slightly different route and suggest NOT starting with the documentation. I think once you're good enough, that's an ok place to start learning a new language, but going straight there is likely to cause a lot of problems down the road. Essentially,

If you're that new, you should learn basic programming skills first; an important part of programming is understanding how the commonly accepted patterns work. Books are great, but nothing beats direct experimenting and making stuff. See if you can take classes to learn the basics of programming, since classes allow you to have a mentor that can hopefully teach you the basic skills. You will need to learn problem-solving, workflows, version control, and other topics which can be a challenge to learn from scratch.


I think this is pretty much right, except that most books on languages will cause confusion and frustration down the road. I'm an autodidactic programmer myself, and learning from books without knowing how to apply the knowledge lead me to writing awful code and picking up bad habits. If you can't take a class yourself (or want to move at your own pace, whether faster or slower than a normal class) I'll recommend MIT's OpenCourseWare for learning programming. I've not read much beyond the first couple of classes, but the stuff I've learned in 6.00 and 6.001 has improved my programming immensely, with stuff I don't usually see mentioned in other places, like why modularity is good and important, how abstraction barriers are supposed to be used and why, how to think about problems, etc.

So if you're interested in sort of getting a broad feeling for the topic, definitely check those early courses out. They'll give you a base to build fabulous things upon.
User avatar
Shivahn
 
Posts: 2187
Joined: Tue Jan 06, 2009 6:17 am UTC

Re: New to Coding

Postby Steax » Thu Feb 23, 2012 1:33 pm UTC

Well, it depends on the quality of the documentation. Some languages like Python and J have really cool introduction tutorials which are also docs. Others, not so much. But it's worth taking a look at, if only so you know where the definitive source of information is; you'll be needing it at one point later or now.

Yeah, classes are the best way. The term 'class' should be taken loosely, though, since online walkthroughs and stuff also qualify as pretty awesome classes.
In Minecraft, I use the username Rirez.
User avatar
Steax
SecondTalon's Goon Squad
 
Posts: 3037
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: New to Coding

Postby Curtis Dyer » Mon Feb 27, 2012 10:59 am UTC

Steax wrote:Well, it depends on the quality of the documentation. Some languages like Python and J have really cool introduction tutorials which are also docs.

Some sources of documentation are useful only as references: meaning they hold much more value to people who have an idea of how what they're looking for works. As far as documentation goes, PHP's is actually among the best I've seen. In addition to having a basic beginner's tutorial, almost every page documenting the standard library is accompanied by several examples, which especially helps newbies grok things easier. Also, related functions are listed down the left margin, which helps get the feel for unfamiliar extensions very quickly. To contrast, the Java platform's API reference, while comprehensive, is sparse in the way of examples, so actually properly utilizing classes and figuring out how to interact with other classes can be frustrating to computer programming newbies. For that reason, a more guided tutorial might be preferred in cases such as these.


@OP:
In general, computer programming is a skill that takes a long time to hone, regardless of language. Beware of dubious claims by book authors to teach "[X] Language in [Y] Days," or similar. I highly recommend newbies to read Peter Norvig's insightful article, "Teach Yourself Programming in Ten Years" (you'll have to Google, I can't link it yet). In essence, there's no magic shortcut to true proficiency, which not only goes for computer programming, but for becoming a doctor, playing the piano, etc.

I'm not sure why there seems to be such loathing for C from certain people, but it's important to remember that the C language is NOT the same as the C implementation. The same goes for C++ and ECMAScript, of which JavaScript is the most popular implementation. These languages' behaviors and standard libraries are defined by official specifications, which implementers utilize and upon which they usually expand (e.g., VC++ Windows API). This approach allows different implementers to tackle different programming domains while still using the same, basic language and standard library. If you like, you can get a hold of C interpreters, run C programs in managed environments, get ECMAScript compilers, etc.

This is obviously different from approaches that have One True Implementation. Referring back to PHP: there's generally one official place you go to grab the interpreter. The PHP devs have complete control over the implementation and behavior of the language. (This is not to say the community doesn't help such languages grow and evolve. The Java community had a great deal of influence on the Java Language Specification.)
User avatar
Curtis Dyer
 
Posts: 2
Joined: Mon Feb 27, 2012 8:59 am UTC
Location: California

Re: New to Coding

Postby jpk » Sun Mar 18, 2012 6:16 am UTC

Curtis Dyer wrote:
Steax wrote:Well, it depends on the quality of the documentation. Some languages like Python and J have really cool introduction tutorials which are also docs.

Some sources of documentation are useful only as references: meaning they hold much more value to people who have an idea of how what they're looking for works. As far as documentation goes, PHP's is actually among the best I've seen. In addition to having a basic beginner's tutorial, almost every page documenting the standard library is accompanied by several examples, which especially helps newbies grok things easier. Also, related functions are listed down the left margin, which helps get the feel for unfamiliar extensions very quickly. To contrast, the Java platform's API reference, while comprehensive, is sparse in the way of examples, so actually properly utilizing classes and figuring out how to interact with other classes can be frustrating to computer programming newbies. For that reason, a more guided tutorial might be preferred in cases such as these.



Funny, PHP's documentation usually makes me want to cry, but I get along quite well with the Java API reference. Horses for courses, I suppose.
jpk
 
Posts: 606
Joined: Sat Nov 13, 2010 7:33 am UTC

Re: New to Coding

Postby Aaeriele » Sun Mar 18, 2012 8:07 am UTC

One problem with a lot of tutorials is that they're aimed at people who already have a basic idea how to program, or at least how programming works/what some basic programming concepts are, but just don't know that particular language.

For those who truly have never programmed before, you might consider taking a look at http://learnpythonthehardway.org/book/ - it's specifically designed for people who have never programmed before.
Vaniver wrote:Harvard is a hedge fund that runs the most prestigious dating agency in the world, and incidentally employs famous scientists to do research.

afuzzyduck wrote:ITS MEANT TO BE FLUTTERSHY BUT I JUST SEE AAERIELE! CURSE YOU FORA!
User avatar
Aaeriele
 
Posts: 2105
Joined: Tue Feb 23, 2010 3:30 am UTC
Location: San Francisco, CA

Re: New to Coding

Postby Steax » Sun Mar 18, 2012 11:02 am UTC

I'm most pleased when I see a new programming language/model/framework/library, and they offer articles like "X for PHP developers", "X for Java developers", "X for the new to coding", and stuff like that. Especially because people enjoy very clear explanations between different languages ("in PHP, you'd typically make a singleton or static class. Here, you create a new N, and do X...") as well as how their previous things match up ("string concat-ing is done with the dot operator here as well") and common pitfalls ("Instead of using an assignment operator for optional arguments, you mark the optional ones with square brackets").

It's just annoying for an advanced developer to have to re-learn "look, now you can add two values together! yay!", and annoying for new developers to be flooded by jargon.
In Minecraft, I use the username Rirez.
User avatar
Steax
SecondTalon's Goon Squad
 
Posts: 3037
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: New to Coding

Postby Curtis Dyer » Sun Mar 18, 2012 10:42 pm UTC

jpk wrote:
Curtis Dyer wrote:
Steax wrote:Well, it depends on the quality of the documentation. Some languages like Python and J have really cool introduction tutorials which are also docs.
[...]PHP's is actually among the best I've seen. In addition to having a basic beginner's tutorial, almost every page documenting the standard library is accompanied by several examples, which especially helps newbies grok things easier.

Funny, PHP's documentation usually makes me want to cry, but I get along quite well with the Java API reference. Horses for courses, I suppose.

PHP was actually the first language I learned, so when reading the docs, if the explanation didn't hit it home for me, the examples seemed to do the trick.

Steax wrote:I'm most pleased when I see a new programming language/model/framework/library, and they offer articles like "X for PHP developers", "X for Java developers", "X for the new to coding", and stuff like that.

Yes, it's quite helpful when multiple tutorials for different audiences are available. Sadly, I see a lot of negative feedback for genuinely good books on Amazon, because people don't realize many books are for people who already have varying levels of programming experience.
User avatar
Curtis Dyer
 
Posts: 2
Joined: Mon Feb 27, 2012 8:59 am UTC
Location: California

PreviousNext

Return to Coding

Who is online

Users browsing this forum: No registered users and 2 guests