topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Thursday March 28, 2024, 9:44 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: Where to start with computer programing  (Read 37241 times)

josephus

  • Participant
  • Joined in 2008
  • *
  • Posts: 5
    • View Profile
    • Donate to Member
Where to start with computer programing
« on: October 11, 2008, 10:13 PM »
I have really become interested in computer programing and would like to learn how.
My main goal is to make apps for fun but also be able to make a living off of programing.

I want to start out slow and have fun with coding but also be on the path of advanced programing.

 

Ehtyar

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,237
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #1 on: October 11, 2008, 10:36 PM »
Anyone answering this question would likely be repeating information found in other threads. Here are a handful of threads that should help out. If you have some more specific questions, please ask.


Ehtyar.

[edited: i added one -- mouser]

josephus

  • Participant
  • Joined in 2008
  • *
  • Posts: 5
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #2 on: October 12, 2008, 11:52 AM »
Ok, to be more specific- I want to start out learning how to make apps for my computer that would be fun but also one's
that would have use to them.

Then i want to get more serious
about coding and make a living of of it and be a freelance programmer or work for somebody like Google.
 
Then at some point in time, be able to manipulate my os and maybe make my own.

CWuestefeld

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,009
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #3 on: October 12, 2008, 12:03 PM »
Josephus, I think you're starting well in the way you've asked the question -- as opposed to others that Ehtyar linked to, that asked simply what language to use, since that's only one part of the question.

It's like saying "I want to learn how to drive" is better than asking "how do you use the steering wheel and brake?". There are so many other factors: understanding traffic control devices and the rules of the road; vehicle dynamics; etc.

Extending the analogy, then, to learn software development you must obviously learn a particular language. But there's so much to learn beyond the language itself. You should also be looking for an understanding of data structures and algorithms (e.g., how does one sort a list?; what's a linked list for and how do I create one?), design patterns (common solutions to the problems that recur frequently; I recommend the book of the same name by Gamma et al), understanding how operating systems work, and so forth.

jgpaiva

  • Global Moderator
  • Joined in 2006
  • *****
  • Posts: 4,727
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #4 on: October 12, 2008, 12:28 PM »
If your idea is to progress, I'd recommend something like Java or C#. A good start could be a web technology like php, if you intend to follow that path.

Anyways, even though autohotkey (the language mostly used here at DC for making coding snacks) is a great language for making fun and useful stuff, it really isn't very good for those that want to progress, as it's pretty limited.

josephus

  • Participant
  • Joined in 2008
  • *
  • Posts: 5
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #5 on: October 12, 2008, 03:17 PM »
So would it be better to learn java first and then autohotkey or the other way around?

I ask this because i have a while yet before i have to worry about getting a job and i believe mastering more than one language would be to my advantage.

Also, could i use jave and autohotkey in linux?
 



 
« Last Edit: October 12, 2008, 05:07 PM by josephus »

jgpaiva

  • Global Moderator
  • Joined in 2006
  • *****
  • Posts: 4,727
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #6 on: October 12, 2008, 05:37 PM »
To be fair, I'd go for - don't learn ahk, learn c#. It's a bazilion more useful, although quite harder to use.

Java is cross-platform (works in several platforms - including windows and linux), c# "sort of" is cross-platform (because there's the Mono project for linux, but isn't exactly the same), and ahk is windows only.

For me, as a first language, I'd start with Java by reading Thinking In Java. It's a great book, and very within the reach of a begginer.

-note: I'm VERY partial to java, because I really love using it. Others would probably recommend something else, so I really recommend that you read the other threads linked in the post above.

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Where to start with computer programing
« Reply #7 on: October 12, 2008, 05:45 PM »
JAVA is a pretty OK language to learn programming with, actually. It has a large class library with tons of useful stuff (not always super-nicely designed, but nothing's perfect), it's hard to shoot yourself in the foot, and it's not a toy language that can't be used for anything serious. And eclipse is a free and pretty decent language for it.

From there on, taking on C# or C++ shouldn't be too hard, since those languages are very similar in structure to JAVA - more complex and powerful too, but you don't need to unlock the full power of a language to start with.
- carpe noctem

Ehtyar

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,237
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #8 on: October 12, 2008, 06:03 PM »
Josephus, I think you're starting well in the way you've asked the question -- as opposed to others that Ehtyar linked to, that asked simply what language to use, since that's only one part of the question.

It's like saying "I want to learn how to drive" is better than asking "how do you use the steering wheel and brake?". There are so many other factors: understanding traffic control devices and the rules of the road; vehicle dynamics; etc.

Extending the analogy, then, to learn software development you must obviously learn a particular language. But there's so much to learn beyond the language itself. You should also be looking for an understanding of data structures and algorithms (e.g., how does one sort a list?; what's a linked list for and how do I create one?), design patterns (common solutions to the problems that recur frequently; I recommend the book of the same name by Gamma et al), understanding how operating systems work, and so forth.
*sigh* Had you bothered to check any of the links, you'd have found the first is a link to article discussing the best beginner languages. And your contribution to his question is...?
If your idea is to progress, I'd recommend something like Java or C#. A good start could be a web technology like php, if you intend to follow that path.

Anyways, even though autohotkey (the language mostly used here at DC for making coding snacks) is a great language for making fun and useful stuff, it really isn't very good for those that want to progress, as it's pretty limited.
Although I personally detest the philosophy of C#, and find Suns behavior regarding the development of Java as a language appalling, I must agree that both languages offer possibly the best opportunities for money making, and an understanding of object oriented programming.
However, nither language will offer you the possibility of creating your own operating system, and they have limited scope in the freelance market; they're geared more toward the corporate money-clinging types in the business arena.
In short, these two offer excellent learning potential, but they don't fit well with your future goals. I suggest picking one, learning it, then reassessing your goals before choosing a more powerful language to work with.

Ehtyar.

jgpaiva

  • Global Moderator
  • Joined in 2006
  • *****
  • Posts: 4,727
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #9 on: October 12, 2008, 06:14 PM »
Ehtyar: I believe josephus really has no idea what an acomplishment it is to make his own OS. I recommended a good introductory language, as it is the one chosen at my university. (actually, the first language is scheme, but that's as useful as a comb for a bald man).

Something I consider very important here is for josephus to really acess the market he's targeting, as web-based apps are really rising, and might be a better investment of time at the moment.

Well, anyways, josephus: just grab one, try it for a while so you get the hang of it, and then switch to another one, and see what you like best.

ps: other interesting options could by python (where's tinjaw? :D), perl or javascript for example.

Ehtyar

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,237
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #10 on: October 12, 2008, 06:29 PM »
Indeed, I forgot to respond to the web development comment. I would definitely consider, as jgp mentioned, learning some PHP/XHTML/javascript. They each represent some very important programming paradigms, and will bode well for you in the freelance arena.
ps: other interesting options could by python (where's tinjaw? :D), perl or javascript for example.
I try to steer clear of recommending such things because I know my personal bias is overwhelming :P Python is known as a very good teacher, however Perl is definitely the language to start with, you would learn some very bad habits as a first-timer coder in Perl.

Ehtyar.

CWuestefeld

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,009
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #11 on: October 12, 2008, 06:42 PM »
*sigh* Had you bothered to check any of the links, you'd have found the first is a link to article discussing the best beginner languages. ...
I apologize in advance for this tangent, especially it being a flame. But I think Ehtyar is just being a jerk, and I feel compelled to defend myself.

Let's look at those 5 links, shall we?
  • The topic's name is "The Best Introductory Language"
  • The topic's name is "Which language should I learn first?"
  • This topic's question starts on the right track, one aspect of it was "Prinicipally, the first choice I have to make is what language/IDE to use", and replies focused on this aspect.
  • The topic's name is "How to choose programming language?"
  • The topic's name is "What language is the best for a new programmer to start with?"

Thus, the whole list is really about choosing a programming language. The broader development questions are only addressed in the third link, and there just a bit (although there were a few good responses thrown in, such as this one from Mouser). Ehtyar, did you bother to look at them?

...And your contribution to his question is...?

Ehtyar, did you even bother to read *my* post? Look at my last paragraph:

...to learn software development you must obviously learn a particular language. But there's so much to learn beyond the language itself. You should also be looking for an understanding of data structures and algorithms (e.g., how does one sort a list?; what's a linked list for and how do I create one?), design patterns (common solutions to the problems that recur frequently; I recommend the book of the same name by Gamma et al), understanding how operating systems work, and so forth.

I point out that there's much more to it than just language; I think this is an important insight on its own, but I didn't stop there. I also identify three specific areas of study other than programming languages (data structures and algorithms, design patterns, and OS theory), and gave a recommendation for what I feel is the best source for one of them.

I would definitely consider... learning some PHP/XHTML/javascript. They each represent some very important programming paradigms, and will bode well for you in the freelance arena.

Actually, PHP teaches some fairly horrible programming paradigms, although it's true that they are still marketable skills. For more on this, see here:

Understand that as a long time VB developer, I am completely sympathetic to the derision you'll suffer when programming in a wildly popular programming language that isn't considered "professional". I've written both VB and PHP code, and in my opinion the comparison is grossly unfair to Visual Basic. Does PHP suck? Of course it sucks. Did you read any of the links in Tim's blog entry? It's a galactic supernova of incomprehensibly colossal, mind-bendingly awful suck. If you sit down to program in PHP and have even an ounce of programming talent in your entire body, there's no possible way to draw any other conclusion. It's inescapable.

But I'm also here to tell you that doesn't matter.
...

Some of the largest sites on the internet -- sites you probably interact with on a daily basis -- are written in PHP. If PHP sucks so profoundly, why is it powering so much of the internet?
...

While PHP wouldn't be my choice, and if pressed, I might argue that it should never be the choice for any rational human being sitting in front of a computer, I can't argue with the results.

You've probably heard that sufficiently incompetent coders can write FORTRAN in any language. It's true. But the converse is also true: sufficiently talented coders can write great applications in terrible languages, too. It's a painful lesson, but an important one.

Ehtyar

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,237
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #12 on: October 12, 2008, 06:54 PM »
I won't respond in kind because I think it would be a waste of time. You have your opinion, I have mine. jgp and I suggested languages, you gave advice. A language suggestion in addition to your advice might have been more helpful, and in future you may want to consider backing up your opinion with more than a quote from someone with the same opinion.

Ehtyar.

jgpaiva

  • Global Moderator
  • Joined in 2006
  • *****
  • Posts: 4,727
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #13 on: October 12, 2008, 07:06 PM »
I believe the whole problem here is that recommending a programming language out of the blue really doesn't make much sense.

I think josephus would be much better served if he made some investigation of his own on exactly what kind of software does he want to create, and what direction he wants to follow, so that we can recomment the best road to go there.

Meanwhile, I should already be in bed, and thanks to this topic, I'm learning python instread..  ;D

CWuestefeld

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,009
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #14 on: October 12, 2008, 07:11 PM »
A language suggestion in addition to your advice might have been more helpful,

Actually, a language opinion would not have been useful; it is contrary to the actual point I was trying to make: that language is just one part of it. Let's turn it around? Why didn't anyone else provide guidance on how to learn about data structures, etc.?

Ehtyar continues:
in future you may want to consider backing up your opinion with more than a quote from someone with the same opinion.

Why am I obligated to provide more than one, when you provided no citations whatsoever? I was going to be a smarta** and post a search to 473,000 hits on "PHP sucks", but just consider this one:

First, let's try to be a bit more specific. Does PHP the language suck, or does PHP the environment suck?

They both suck.

In fact, they suck for the same reason: PHP-the-language and PHP-the-environment both grew by accretion of random features, not by any purposeful design for orthogonality. So you have idiot "features" like magic quotes ("Assuming it to be on, or off, affects portability. Use get_magic_quotes_gpc() to check for this, and code accordingly) and register globals (same disclaimer applies, only more so).
...

In short, PHP sucks because, PHP's authors are prone to confuse "pragmatism" (a fine design goal, if done well) with "adding random features without considering how they impact the language as a whole." Thus, its authors have found it necessary to correct obvious flaws in both minor and major releases, with the result that the recent PHP5 breaks with the past to an unprecedented degree while still leaving many fundamental flaws un-addressed.

I wouldn't have posted this whole quote, but I think it actually supports my point in the real discussion. Design issues are every bit as important as the programming language. If you don't know what you're doing, you may just wind up with a magnificent monstrosity. Knowing how to write a program isn't sufficient: you need to know how to decide just which program to write: what does the user really need; what are the best algorithms to achieve those goals; any design patterns extant where people have already proven the solutions.

Ehtyar

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,237
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #15 on: October 12, 2008, 07:14 PM »
As long as we provide a reasoning for our suggestions, we're providing an opportunity for josephus to make his own decision based on the benefits of the specific language. I see no harm in that. He is, after all, perfectly welcome to disregard whatever we say.
in future you may want to consider backing up your opinion with more than a quote from someone with the same opinion.

Why am I obligated to provide more than one, when you provided no citations whatsoever? I was going to be a smarta** and post a search to 473,000 hits on "PHP sucks", but just consider this one:

First, let's try to be a bit more specific. Does PHP the language suck, or does PHP the environment suck?

They both suck.

In fact, they suck for the same reason: PHP-the-language and PHP-the-environment both grew by accretion of random features, not by any purposeful design for orthogonality. So you have idiot "features" like magic quotes ("Assuming it to be on, or off, affects portability. Use get_magic_quotes_gpc() to check for this, and code accordingly) and register globals (same disclaimer applies, only more so).
...

In short, PHP sucks because, PHP's authors are prone to confuse "pragmatism" (a fine design goal, if done well) with "adding random features without considering how they impact the language as a whole." Thus, its authors have found it necessary to correct obvious flaws in both minor and major releases, with the result that the recent PHP5 breaks with the past to an unprecedented degree while still leaving many fundamental flaws un-addressed.

I wouldn't have posted this whole quote, but I think it actually supports my point in the real discussion. Design issues are every bit as important as the programming language. If you don't know what you're doing, you may just wind up with a magnificent monstrosity. Knowing how to write a program isn't sufficient: you need to know how to decide just which program to write: what does the user really need; what are the best algorithms to achieve those goals; any design patterns extant where people have already proven the solutions.
You're missing my point. Your previous quote was simply Jeff's opinion on PHP, an unsupported one at that. This one has a basis in fact, and even goes so far as to describe them in detail. I'll even give you that PHP is prone to adding random features and in a way that completely disregards any form of classification. I fail to see, however, how this flaw makes PHP such a horrifying language to use, how it breeds bad programming habbits, and why it's such travesty given all the other options available should one wish to be rid of this oversight. PHP does teach procedurally oriented programming, it is a highly marketable language, and it does complement HTML in (arguably) the most practical fashion currently.

Ehtyar.
« Last Edit: October 12, 2008, 07:28 PM by Ehtyar »

Grorgy

  • Supporting Member
  • Joined in 2007
  • **
  • default avatar
  • Posts: 821
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #16 on: October 12, 2008, 07:30 PM »
It was posted about here somewhere sometime ago, why not start with looking at the Stanford School of Engineering free computer courses.  They sound pretty good
Introduction to Computer Science
Programming Methodology CS106A
Programming Abstractions CS106B
Programming Paradigms CS107

The methodologies uses java as the programming language to teach, the next ones use other languages.

here is the link http://see.stanford.edu/see/courses.aspx

Ehtyar

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,237
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #17 on: October 12, 2008, 07:34 PM »
That is an excellent suggestion. I've done a few weeks worth of the paradigms course myself. Very impressive material, freely offered to the public, not much more one could ask for.

Ehtyar.

josephus

  • Participant
  • Joined in 2008
  • *
  • Posts: 5
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #18 on: October 12, 2008, 08:18 PM »
Just wanted to say thanks guys you all have really helped me a lot :D

 

Ehtyar

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,237
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #19 on: October 12, 2008, 08:34 PM »
I'll try to behave myself more in the future. Let us know your decisions, perhaps we can offer some language-specific advice when you come to your decision.

Ehtyar.

CWuestefeld

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,009
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #20 on: October 12, 2008, 09:07 PM »
why not start with looking at the Stanford School of Engineering free computer courses.  They sound pretty good

That looks like a great suggestion. While we were busy bickering, Grorgy found the best answer of all  :o

josephus

  • Participant
  • Joined in 2008
  • *
  • Posts: 5
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #21 on: October 13, 2008, 02:45 PM »
You guys did fight a lot but with that aside i have decided to learn java and go from there.

I'm going to use eclipse but if anybody has other suggestions on anything my ears are open  :)

jgpaiva

  • Global Moderator
  • Joined in 2006
  • *****
  • Posts: 4,727
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #22 on: October 13, 2008, 02:52 PM »
My professors would advise against eclipse because it helps people too much...
Still, I sure recomment it! :)

wreckedcarzz

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 1,626
    • View Profile
    • Donate to Member
Re: Where to start with computer programing
« Reply #23 on: October 13, 2008, 02:55 PM »
I started programming in AHK a couple years back because of the cool apps I found here at DC, and I now do a little AHK and a lot of Visual Basic .NET.

AHK is great for personal programs, fun tricks and whatnot - and it can get really useful if you get into it and take the time, but it won't turn into anything big. It can come in handy though, random times when you need to do something repetitively, it can be so useful to have a script lying around...

Java, C#, C++ and Python are all MUCH more advanced than VB, but personally I am not interested in more powerful languages at the time - Visual Basic is a simple language (once you understand how it works) and it is easily readable even by people that don't know the language (I have had friends that take NO interest in computer programming look at code and I explain to them what it should do, and they sometimes pop a question at me that ends up fixing something).

Do note though that I don't intend on being a programmer as a job (computer repair is what I am shooting for), and I am only 15, so I'm not exactly one to take much advice from.

Figured I would toss my thoughts in :two:
-Brandon

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Where to start with computer programing
« Reply #24 on: October 13, 2008, 02:57 PM »
My professors would advise against eclipse because it helps people too much...
Still, I sure recomment it! :)
I believe that all the helping Eclipse does is actually a good thing - especially for people who have never programmed before. The help it gives is certainly more intuitive than what the java commandline compiler spits out. You could argue that some of it's features might drive people lazy, and all the helpful warnings can make you end up writing sloppy code, but I dunno about that.

Oh, and then there's all the "repetitive manual labor" automation that it does - it's nice speeding up refactorizations, creation of setter/getters, etc. After all, those are examples of step-by-step manual labor that a machine does just as well as you, so why waste time doing it manually? :)
- carpe noctem