You are not logged in.
Pages: 1
I know there are a lot of threads like this that ask "Where should I start?", but I'm more concerned with whats the most simplistic, "average joe", zero-experience, language to begin with.
My aim is to eventually be able to program graphical stuff with Python, but starting there seems a bit... steep. There looks to be a lot to take in regarding libraries and all this other stuff I just don't understand. Should I begin with Bash or Perl, or just start with basic Python tutorials?
I have no real previous programming experience. I know general HTML to make static pages and whatnot. Any suggestions regarding languages or books to read is greatly appreciated.
Last edited by MarCustomized (2008-09-18 23:42:06)
Offline
Try learning some bash scripting. Then move onto python.
Archi686 User | Old Screenshots | Old .Configs
Vi veri universum vivus vici.
Offline
I'd start with python directly. I think python is clearer than bash and will be the path of least resistance, plus you can go farther with python than you can go with bash.
I would also say to not let the seemingly overwhelming amount of things to learn get to you. If you look at everything at once, it will seem like a massive mountain to climb, but step by step, it's not difficult (well, maybe sometimes, but not as difficult as you think). Some things which seem completely unintuitive and foreign at first will eventually just click as you wrap your mind around them. Learning a programming language is progress just as learning a real language is. You won't be speaking fluently using obscure verb conjugations 2 hours after you open a book. Just be patient.
I don't have any sites for tutorials other than what comes up on Google, but here are some links from my python reference bookmarks:
http://docs.python.org/lib/built-in-funcs.html
and, in general, http://docs.python.org/lib/
http://www.webreference.com/programming/python/
http://www.amk.ca/python/howto/regex/
http://infohost.nmt.edu/tcc/help/pubs/tkinter/
Also, the interactive python console is a great tool. When you're going through a tutorial or a reference page and want to quickly test something out, just fire it up and try.
I would recommend giving yourself small programming tasks whenever you can. Following tutorials will get you started but most of the time you'll end up coding something just for the sake of coding it and without having any real use for it. If you start with a goal, you'll have more motivation (and lots of "how the #%$#% do I do that now???" moments), but you'll learn more and you'll always know WHY you're learning to do something.
Btw, I love Perl and use it for nearly all general scripting. I use Python for object-oriented stuff though since it's clearer in Python imo. The only reason that I recommend Python and not Perl to start with (even though I started with Perl), is that Python is generally syntactically clearer. You're more likely to come across head-scratching code in Perl than in Python. Also, if you work with html/css, you might consider learning some PHP or JavaScript. Moving from PHP to Perl or vice versa is relatively easy imo (plus PHP documentation is neatly centralized and organized).
Last edited by Xyne (2008-09-19 00:10:46)
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
Learn Ruby. Well, even if you don't want to, this book tells you really... interestingly... how Ruby works.
(Click the picture of the book )
And if Ruby isn't your thing, try Haskell, or like haxit said, learn bash. Or maybe you could learn PHP - that'd get you into webdevelopment quickly and give you possibilities you wouldn't otherwise have (yes, PHP is one of many languages that can be used for webdev - any language can, really - but it's often #1 the most popular and #2 the only language installed on the webserver/hosting account).
-dav7
Last edited by dav7 (2008-09-19 01:38:00)
Windows was made for looking at success from a distance through a wall of oversimplicity. Linux removes the wall, so you can just walk up to success and make it your own.
--
Reinventing the wheel is fun. You get to redefine pi.
Offline
The introductory CS course at my university uses Python. It's been a while since I've looked over it, but Learning to Program (by Alan Gauld) might be helpful if you go down that route.
(The course itself used How to Think Like a Computer Scientist: Learning with Python as an online textbook of sorts -- though I do not recall using/reading it very much....)
Last edited by ssjlegendx (2008-09-19 01:14:53)
#!/vim/rocks
Offline
try Haskell
-dav7
Not entirely off-topic:
Could you share some thoughts on Haskell? What would you say are its strong and weak points, why did you recommend it to a new programmer, what would you say it's mainly good for, etc.
I keep thinking of installing the interpreter but keep saying "until I'm actually going to learn it, it's just 300 MB of useless info".
Last edited by Xyne (2008-09-19 02:22:06)
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
Learning Python will be the least of your problems, because Python or any language is not more than a syntax to express logic. First, make sure that along your way learning Python, you are understanding the main concepts presented (logic, common algorithms, data structures, procedural programming, object oriented programming, etc.).
BTW, Python is a good start as it will enable you to do procedural and object oriented programming, the syntax is somewhat clean, and the interactive shell is just so much cool for learning. Ruby might be also a good bet, but I'm afraid that it tries to be so clever and abstracts so much key concepts that a beginner will feel lost.
And, I would recommend a beginner spend some time wraping his head around C or even assembly, as it's the root of everything and you gain a lot of knowledge and vision of how the more abstracted stuff works internally.
Last edited by freakcode (2008-09-19 02:06:54)
Offline
If python seems to complicated for you to begin with, then maybe try Pascal ? It's terribly outdated and overly simple but could be a nice introduction to programming.
Don't flame me please
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
--------------------------------------------------------------------------------------------------------------
But if they tell you that I've lost my mind, maybe it's not gone just a little hard to find...
Offline
dav7 wrote:try Haskell
-dav7Not entirely off-topic:
Could you share some thoughts on Haskell? What would you say are its strong and weak points, why did you recommend it to a new programmer, what would you say it's mainly good for, etc.I keep thinking of installing the interpreter but keep saying "until I'm actually going to learn it, it's just 300 MB of useless info".
300MB?!
Wow, I didn't know that.
Haskell just happens to be the most-recent compiled language I know of that has a cool name.
There's also Common Lisp which can be compiled, but Haskell just sounds... better. I don't know. Heh.
-dav7
Last edited by dav7 (2008-09-19 09:14:52)
Windows was made for looking at success from a distance through a wall of oversimplicity. Linux removes the wall, so you can just walk up to success and make it your own.
--
Reinventing the wheel is fun. You get to redefine pi.
Offline
I recommend python, because it is simple and very intuitive. I think Haskell may be difficult now (and later too, haha) and I don't like PHP...
I started learning C, by the way, and I think it isn't hard to learn.
Offline
I've done some Haskell in CS. I like the language a lot, but I'm hesitant to recommend it to a new programmer. Personally, I started out with some Visual Basic and a lot of Pascal. Now I'm doing mainly Java, but I've dabbled with Python, too.
I suggest learning through challenges, for instance projecteuler.net is a good site - but it gets very mathematical.
Offline
Thanks guys. I've decided to work through Python. I found a good book which takes it pretty slowly and it's quite thorough and understandable. The input is much appreciated
Offline
Thanks guys. I've decided to work through Python. I found a good book which takes it pretty slowly and it's quite thorough and understandable. The input is much appreciated
Do you care giving the name of the book?
Offline
OReilly's Learning Python (3rd Edition) is pretty good IMO.
Offline
I know that this thread is resolved, but I need to say one thing about Python: It's a joy to work with. I've only used it for writing scripts for GIMP, but I was truly amazed on how well designed it is, and just how easy it is to find documentation. You need a glob pattern? First search hit. You need sorting? First search hit. You need anything at all... My entire experience is always like this.
Last edited by skottish (2008-09-19 16:20:23)
Offline
Here is a solid book on python, that's free online:
also, if you're looking at ruby at all why's poignant guide is brilliant. also:
you can't go wrong with python though, good choice!
Last edited by cschep (2008-09-19 18:02:06)
Offline
MarCustomized wrote:Thanks guys. I've decided to work through Python. I found a good book which takes it pretty slowly and it's quite thorough and understandable. The input is much appreciated
Do you care giving the name of the book?
Learning Python by Mark Lutz [O'Reilly]
Beginning Programming by Wallace Wang [For Dummies]
Offline
Pages: 1