You are not logged in.

#1 2013-01-18 23:00:43

noxified
Member
Registered: 2012-03-04
Posts: 12

learn programming.

what would you recommend for an absolute beginner on programming ?
some tutorials,or something that would explain,at least to give me a start or something.there's plenty of tutorials on the internet,but i need some advice. (any language you'd like to recommend )

Offline

#2 2013-01-18 23:08:18

Texas
Member
From: Dallas, Texas
Registered: 2010-09-10
Posts: 131

Re: learn programming.

The usual answer is... depends on your goals.  But I'd say Python is a good choice.  Full circle magazine has a monthly series on Python that is good (starting issue 23).

Offline

#3 2013-01-18 23:10:59

noxified
Member
Registered: 2012-03-04
Posts: 12

Re: learn programming.

my goal is to learn programming since,i'd love to go to a programming school,and i don't iave the even the basics ,like the other kids who have done programming in high school.so i must learn on my own.if i go there,with nothing,i'd go for nothing.everyone would learn something but me.so i need to understand ,and learn it.
i'd have like 5 months for learning ,and i'm willing to try and learn as much as i can ,so i can keep up.

Last edited by noxified (2013-01-18 23:11:56)

Offline

#4 2013-01-18 23:20:23

Texas
Member
From: Dallas, Texas
Registered: 2010-09-10
Posts: 131

Re: learn programming.

MIT has an online course intro to computer science for free here.  I watched a few of them.  It is in Python.

Last edited by Texas (2013-01-18 23:20:38)

Offline

#5 2013-01-18 23:23:07

noxified
Member
Registered: 2012-03-04
Posts: 12

Re: learn programming.

Thank you very much.I'm willing to get any advices,so i can do it.Thank you.

Offline

#6 2013-01-18 23:24:42

matyilona200
Member
Registered: 2012-06-21
Posts: 77

Re: learn programming.

I started learning Python here, it worked for me. Its an introduction to programming at MIT, all the course material is uploaded there, and the videos of all the lectures too.
Edit: sorry for duplicate, forgot to refresh before posting.

Last edited by matyilona200 (2013-01-18 23:25:36)

Offline

#7 2013-01-18 23:28:08

chris_l
Member
Registered: 2010-12-01
Posts: 390

Re: learn programming.

You could try with hackety hack, as your first step:
http://hackety.com/

Is designed to be easy with children, but don't let the "children" part to scare you away: is the ruby language what would you be learning wink
If you learn that, you can later easly jump to more "serious" ruby programming... or jump to python, perl, etc.

Last edited by chris_l (2013-01-18 23:30:18)


"open source is about choice"
No.
Open source is about opening the source code complying with this conditions, period. The ability to choose among several packages is just a nice side effect.

Offline

#8 2013-01-19 00:13:36

Nisstyre56
Member
From: Canada
Registered: 2010-03-25
Posts: 85

Re: learn programming.

I recommend checking out http://htdp.org. It uses Scheme, which is a great language for beginners, and you can follow along with the book and do the exercises. Feel free to ask any questions here or on the #archlinux-offtopic irc channel.


In Zen they say: If something is boring after two minutes, try it for four. If still boring, try it for eight, sixteen, thirty-two, and so on. Eventually one discovers that it's not boring at all but very interesting.
~ John Cage

Offline

#9 2013-01-19 00:29:30

drcouzelis
Member
From: Connecticut, USA
Registered: 2009-11-09
Posts: 4,092
Website

Re: learn programming.

Here's a cute story: when my 15 year old sister in law was visiting us around Christmas time, I helped her write her first program, a text based adventure in Python, just for fun. It reminded me of when I learned to program decades ago by making a text based adventure in BASIC. big_smile

Anyway, I always recommend making a video game to new programmers, because it can be as simple or as complex as you want, it's easy to think of a new idea and make something original, and it's fun to see your results!

Last edited by drcouzelis (2013-01-19 00:35:50)

Offline

#10 2013-01-19 15:22:44

noxified
Member
Registered: 2012-03-04
Posts: 12

Re: learn programming.

thank you everyone. i'll start right away.

Offline

#11 2013-01-31 02:28:07

bsilbaugh
Member
From: Maryland, USA
Registered: 2011-11-15
Posts: 141

Re: learn programming.

I agree that Python is a convenient language to program in, and it is a very popular choice among programmers. You'll definitely want to learn it at some point. But, is a dynamically typed language, with automatic memory management, really appropriate for learning the fundamentals of programming? It seems like there might be pedagogical value in starting with a (low level) language like C. Then move on to higher level languages like Python.


- Good judgement comes from experience; experience comes from bad judgement. -- Mark Twain
- There's a remedy for everything but death. -- The wise fool, Sancho Panza
- The purpose of a system is what it does. -- Anthony Stafford Beer

Offline

#12 2013-01-31 04:47:10

Trent
Member
From: Baltimore, MD (US)
Registered: 2009-04-16
Posts: 990

Re: learn programming.

Nah. It's easy to go to C from a higher level language, much easier than learning about pointers and memory management when you don't even understand loops yet. Besides, if you learn C to be a better Python programmer, will you learn assembly to be a better C programmer, or Verilog to become a better assembly programmer? Knowing C may inform you about some design decisions in other languages, but that's no reason to treat it as a prerequisite for learning them. It doesn't really matter what you learn first, so make it something practical and easy to pick up; Python fits the bill.

Offline

#13 2013-01-31 05:28:42

chris_l
Member
Registered: 2010-12-01
Posts: 390

Re: learn programming.

I agree. Learning only a too-easy language is not a good thing. There is a reason they use modula-2 on schools; the college purpose is not teach a language, but  to teach programing concepts, and modula-2 allows that.

Now, I'm not saying you should choose modula-2.

Python is a good first language, and while it won't teach you about pointers, is easy enough to get you hooked and then move to a lower language like C.
But I think learning C is a great thing even if you wont regularly code on it. The same goes to learning assembly. It has been really useful to me to understand how the processor works. And you do that by learning assembly. I don't normally code on it of course, but the learning experience was great.

So, yeah, C is not a prerequisite to python, but it definitely should be mandatory on your plans; if you are planing to be serious on coding.

My first language was basic (on the atari st). Then I learned to create DOS bat files (if such thing counts as a language) and then I learned x86 assembly. From that point, learning other languages was quite easy, and I'm pretty sure assembly helped me a lot.


"open source is about choice"
No.
Open source is about opening the source code complying with this conditions, period. The ability to choose among several packages is just a nice side effect.

Offline

#14 2013-01-31 07:05:24

FreeTheBee
Member
Registered: 2011-01-02
Posts: 125

Re: learn programming.

Adding to Texas's suggestion, you could look at coursera.org or edx. org. Both offer all kinds of online courses from several universities. MIT has an online python course on edx, which is very good I think. It should start again quite soon. On coursera there are is a course called 'learn to program: the fundamentals', which also uses python, but it is very basic.

Offline

#15 2013-01-31 08:59:47

noxified
Member
Registered: 2012-03-04
Posts: 12

Re: learn programming.

i stareted reading courses from MIT ,and started learning some C ++. i'm trying to learn at first comands.what is it,what something do...

Offline

#16 2013-01-31 10:49:35

examon
Member
Registered: 2011-05-07
Posts: 208

Re: learn programming.

Texas wrote:

MIT has an online course intro to computer science for free here.  I watched a few of them.  It is in Python.

I watched it full a long time ago. It is really perfect to learn basics of programming.

Offline

#17 2013-01-31 12:23:49

CrashLog
Member
From: Finland
Registered: 2013-01-13
Posts: 136

Re: learn programming.

cs50 is great too, I think. I started it but got too busy to actually finish, but as I was going through the videos and materials, I felt like I was learning a lot.

Last edited by CrashLog (2013-01-31 12:24:46)


"There are no problems, only opportunities for solutions."

Offline

#18 2013-01-31 16:02:52

Trent
Member
From: Baltimore, MD (US)
Registered: 2009-04-16
Posts: 990

Re: learn programming.

@chris_l
I think the important thing is to learn several languages, not to learn any language in particular. C and assembly aren't more "real" than other programming languages; they're just better for certain things that happen to be low-level. I wouldn't discourage anyone from going for the low-level stuff, but to say C should be mandatory for people who will never use it practically is just not true.

Offline

#19 2013-01-31 16:18:15

Gnarl
Member
Registered: 2010-11-18
Posts: 63

Re: learn programming.

codecademy.com is good for absolute basics, it's interactive and has many different languages.

Last edited by Gnarl (2013-01-31 16:20:34)

Offline

#20 2013-01-31 16:22:43

stringchopper
Member
Registered: 2009-02-19
Posts: 38

Re: learn programming.

I recommend assembly.  Why? Because it will give you a good representation of what's going on in the processor with various programming constructs and you'll learn a lot about memory and addressing. This will enable you to pick up almost any other programming language without much effort.  c or c++ will be much easier (though c++ should be sequestered at Guantanamo, imo).

I know you're posting in a linux forum, so you probably have goals of programming in linux, but there aren't many great books on assembly language in linux - though you might search for NASM... I seem to recall that the nasm homepage had links to many helpful resources, howto's, etc.

I learned a few years ago on Windows with Kip Irvine's "assembly language for intel-based computers" http://www.amazon.com/Assembly-Language … 0132383101 using MASM and Visual Studio, which has an excellent environment for debugging and disassembly - and the free Visual C++ Express will work just as well (you set up the c++ environment to work with assembly, but don't otherwise do anything with assembly).  More info on how to do all that can be found at http://kipirvine.com/asm/4th/index.html


Regards,
Brian

Offline

#21 2013-01-31 16:40:02

chris_l
Member
Registered: 2010-12-01
Posts: 390

Re: learn programming.

@Trent: Well, what can I tell you? I don't think that way.

The computer processor works in opcodes, and assembly is the direct translation of them. Is not just a language for another tasks; is THE direct translation of the language the processor actually "speaks". Of course, on real life, you would only use assembly for implementing small details on big projects, and never would write a big project exclusive on it.

I never intended to mean that other languages were "inferior", but, certainly assembly is more "real", by defining "real" as "closer to what the computer processor actually does". And C is an abstraction of what a processor does, to the point C is sometimes considered a "highlevel assembly".

Being more real does not mean is more "useful" or "superior"; they are not, and they are not always the best tool for the job.

The unix philosophy has this rule: Use shell scripts to increase leverage and portability.

Who would expend hours and hours doing on C or assembly something that can be achieved with an small script? Only a fool would spend the time to do that when so many more worthy tasks await him.

I read somewhere that assembly is like the latin of coding. I agree with that idea. Even if students will never really speak it, it is useful for them. Schools don't make linguist students study latin just to annoy them.

@stringchopper: well, about linux assembly, there is always Linux Assembly website. But certainly, I would recommend something for a simpler processor. I have only coded in 8086 assembly, so I can only recommend that one. But maybe other options are fine too

Now, something not related to assembly or C.

At some point (after learning how the processor works, and after the point of being able to work comfortably on python/perl/php/etc) I would recommend you to learn a functional language, like lisp, haskell, etc or at least, studying something like the book High order perl.

Last edited by chris_l (2013-01-31 17:05:42)


"open source is about choice"
No.
Open source is about opening the source code complying with this conditions, period. The ability to choose among several packages is just a nice side effect.

Offline

#22 2013-01-31 17:18:49

kanikuleet
Member
Registered: 2012-12-22
Posts: 36

Re: learn programming.

@chris_l
I would not recommend learning a functional language like haskell to a complete beginner, it is too hard to understand, and it is rarely used (less learning material)


I started by learning C as my first language and when I look back I do not regret that decision because it is a relatively small language and especially in a linux environment very useful and easy to use (gcc+text editor)

It provides good insights in how computers work, e.g. memory allocation, and is a good basis to build on, it makes learning new languages easier, e.g. syntax...
Finally you will find tons of source code on the web to study and you can take a look at linux's programs source code.

just my 2 cents...

Offline

#23 2013-01-31 18:02:00

drcouzelis
Member
From: Connecticut, USA
Registered: 2009-11-09
Posts: 4,092
Website

Re: learn programming.

Here's something to consider: Learning Python after years of programming in C has made me a better C programmer.

Would Python still have made me a better C programmer if I had learned it before learning C? smile

Offline

#24 2013-01-31 18:09:33

headkase
Member
Registered: 2011-12-06
Posts: 1,975

Re: learn programming.

If you're going to go with Python (which the herd here thinks is best.. wink ), make sure to pick up "A Byte of Python":

http://www.swaroopch.com/notes/python/

It's a free book, there is a complete PDF link on that page if that strikes your fancy, and what it is is a "no holds barred get right in there and do stuff" Python tutorial.  It is short but it covers pretty well everything.  That PDF will give you a solid foundation and being short you can go back over the parts you need to quickly.  Then once you are confident with the basics find yourself a reference for the Python Standard Library.  The PSL will do 95% of the stuff you might have thought you needed to do - that is why Python is called "Batteries Included", the Standard Library -  so you don't have to reinvent the wheel.  You need to cover that too so you know what you don't need to reinvent.

Last edited by headkase (2013-01-31 18:13:22)

Offline

#25 2013-01-31 19:27:20

chris_l
Member
Registered: 2010-12-01
Posts: 390

Re: learn programming.

kanikuleet wrote:

@chris_l
I would not recommend learning a functional language like haskell to a complete beginner, it is too hard to understand, and it is rarely used (less learning material)

Oh, agree with you. I said "and after the point of being able to work comfortably on python/perl/php/etc"; at that point he would not be a beginner anymore. wink

I don't agree with "rarely used"; there are several FOSS projects writed on haskell, and IMHO, there should be more tongue

But yeah, not ok for a total beginner (...maybe if such beginner is a mathematician, or something similar... I don't know)


"open source is about choice"
No.
Open source is about opening the source code complying with this conditions, period. The ability to choose among several packages is just a nice side effect.

Offline

Board footer

Powered by FluxBB