Introduction to programming (Python)- help with materials
- The_Jester
-
The_Jester Mafia Scum
- The_Jester
- Mafia Scum
- Mafia Scum
- Posts: 1600
- Joined: September 2, 2014
- Location: Wish I knew. The hell is this place anyway?
Introduction to programming (Python)- help with materials
Hi hey hello. So I decided to get into programming in my spare time cause I think it's very useful to know at least the basics plus I need to do something worthwhile, apart from work. I've read that Python's one of the better choices for a noob like me, although there are so many different sites and manuals that it's hard to judge which ones are really useful. Anybody here with experience in that matter could give me some tips/links? Much appreciated.Why'd the clown drive over the cup?
He wanted to crack him up!- Accountant
-
Accountant Jack of All Trades
- Accountant
- Jack of All Trades
- Jack of All Trades
- Posts: 6419
- Joined: May 16, 2015
- Location: Wonderland
Codeacademy.com and Learn Python the Hard Way are the two best ones. Though for an absolute beginner you should start with C.There's nothing that says that a fake can't beat the real thing.
You must not imagine that for beings like you and us there can be laughter. The low men laugh, and we envy them. But for us, the higher ones, there is no laughter, only an unending vigil, purely serious, stretching on into the night.- zMuffinMan
-
zMuffinMan Survivor
- zMuffinMan
- Survivor
- Survivor
- Posts: 20915
- Joined: March 10, 2011
watIn post 1, Accountant wrote:Though for an absolute beginner you should start with C.spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh spiffeh- Accountant
-
Accountant Jack of All Trades
- Accountant
- Jack of All Trades
- Jack of All Trades
- Posts: 6419
- Joined: May 16, 2015
- Location: Wonderland
I'm standing by that opinion. Working at a slightly lower level means you understand how stuff works behind the scenes. Java is okay too.There's nothing that says that a fake can't beat the real thing.
You must not imagine that for beings like you and us there can be laughter. The low men laugh, and we envy them. But for us, the higher ones, there is no laughter, only an unending vigil, purely serious, stretching on into the night.- Thestatusquo
-
Thestatusquo He/HimShea
- Thestatusquo
He/Him- Shea
- Shea
- Posts: 14371
- Joined: July 27, 2006
- Pronoun: He/Him
- Location: Chicago!
100% disagree. In fact, I think this mindset is actively harmful. You should learn the basics of coding on something that has very grokkable syntax and isn't an impediment to learning the basic concepts of the craft. You don't need to go low level to do this, in fact, going low level is distracting when all you need to know to get started is "what is a string" and you have like 3 impediments to that basic lesson. Ultimately, languages are super easy to pick up once you grok the basics, so saying "you should start with a low level language" seems iffy to me, since its way easier to learn on a language that is not C.In post 3, Accountant wrote:I'm standing by that opinion. Working at a slightly lower level means you understand how stuff works behind the scenes. Java is okay too.
I'm partial to ruby myself, as its the language I learned with, but python is very similar and is perfectly fine for learning.
I second both the suggestions made by accountant wrt materials. Codecademy is quite good for someone who is going in with no experience because they really start each course with the assumption that you know nothing, which is frustrating for me but is probably pretty useful for someone who actually is new.
First things first, get yourself an editor. I'm partial to sublime text myself, but ultimately your editor matters less than learning it. At this stage it doesnt matter very much at all. This is another reason why I would suggest sublime text. It's free and its very user friendly for a beginner.
Second things first, find yourself a good book. I can personally recommend the one that accountant mentioned, but there are plenty of others. Go through the codeacademy stuff and the book stuff at roughly the same pace, so that you are reinforcing your learning of one with the other. If you find that one works better for you, focus primarily on that, but don't stop doing the other things. The repetition is good for you!
Last things last, once you've got the basics of writing simple programs down (types, loops, etc) you're going to start learning how to turn that code into actual things that do stuff.
I can't recommend this free algo course from stanford enough. It will really hammer into you the basics of algorithm design and it will really get you started along the path of thinking like a programmer:
https://www.coursera.org/learn/algorith ... n-analysis
in addition to that, once you're at this stage you can start introducing yourself to some web frameworks if you're at all interested in web dev stuff.
for instance django is a common web development framework for python. What is a framework? DON'T WORRY ABOUT THAT YET. Just come back to this post later after the other stuff and oh hey look its a nifty little tutorial for your first django app. (https://docs.djangoproject.com/en/1.9/intro/tutorial01/)
these things will get you well on your way.
Feel free to ping me if you get stuck anywhere.
Oh and the most important piece of advice I can give you is this: google is your friend. I know when I was first learning I had this idea in my head that it was cheating to look things up on google when I got stuck. Now that I do this shit professionally, I know that googling is at least 30% of what I do. Don't think it's wrong or cheating. Ask yourself this instead: Do I understand what I just did? If the answer is yes then you're golden. If its no then go read some more and do it again.
tout comprendre c'est tout pardonner- Accountant
-
Accountant Jack of All Trades
- Accountant
- Jack of All Trades
- Jack of All Trades
- Posts: 6419
- Joined: May 16, 2015
- Location: Wonderland
Well it's just an opinion. I guess I can see the upsides of learning a higher level language first, but like that's what I did and holy shit did I pick up some terrible habits from it. I spent the first week of learning Java just cursing because I forgot to put the semicolons or curly brackets. I guess what it comes down to is if you're confident enough in your own abilities to learn while surrounded by confusing and complex stuff(eg. not just "what is a string in python", but the entire nuts and bolts process of how your computer prints a string out onto the screen, including importing stdio and the fact that printf isn't just an arbitrary command you type to make shit work but a predefined function that takes in your stuff as an argument, etc).
I did make a bit of a hasty assumption that you were at least somewhat familiar with computers. If you're a total beginner whose only experience with algorithmic thinking comes from Cypher telling you about blondes and brunettes in the Matrix then yeah start with Python.
By the way, I love Learn Python the Hard Way because instead of providing you with an interpreter or a cancerous IDE it makes you write your shit in notepad++ and execute it with command lineThere's nothing that says that a fake can't beat the real thing.
You must not imagine that for beings like you and us there can be laughter. The low men laugh, and we envy them. But for us, the higher ones, there is no laughter, only an unending vigil, purely serious, stretching on into the night.- Claus
-
Claus Mafia Scum
- Claus
- Mafia Scum
- Mafia Scum
- Posts: 1734
- Joined: June 1, 2007
- Location: Tsukuba
- Contact:
The Jester, you need to figure out something you like to do that involves programming.
For example, a twitter bot is something you can do easily with python, and see your program doing something "useful" quite quickly.
http://blog.mollywhite.net/twitter-bots ... twitterapp
Or if you are into maths, you could try to use python to solve mathematical puzzles from this site:
https://projecteuler.net/
Also, ignore what Accountant is saying regarding learning C, unless you see yourself becoming a CS student in the future. And even then, as a CS professor I would recommend that you only go there after you feel confident programming in python.http://www.youtube.com/watch?v=XVVmAG0RXmo- inte
-
inte Mafia Scum
- inte
- Mafia Scum
- Mafia Scum
- Posts: 3523
- Joined: November 15, 2011
- Location: C-bus
LOL. nobody should start with c. if anything golang or rust would be a better, more modern place, but that shit is confusing and useless if u aint serious about that type of programmingIn post 1, Accountant wrote:Codeacademy.com and Learn Python the Hard Way are the two best ones. Though for an absolute beginner you should start with C.
just stick with free online python or ruby resources until you feel like you have a sort of journeyman level experience
i would also advise getting involved with an open source repo on github and at least just following along on changelog changes. try to understand what and why they are doing what they are doing. work > learning
for example, this guy does work, (but doesn't use python, so its not exactly what you want): https://github.com/bastimeyer/livestreamer-twitch-gui
good luckShowW(eed)/L: 420/2
T:2/2/0
S:1/0/0
N:0/0/0
When dreamen gad-adto-ello-lahwer time-antime ageeee-ayeeeeah-ye-e-ah-nn.- The_Jester
-
The_Jester Mafia Scum
- The_Jester
- Mafia Scum
- Mafia Scum
- Posts: 1600
- Joined: September 2, 2014
- Location: Wish I knew. The hell is this place anyway?
- implosion
-
implosion he/himPolymath
- implosion
he/him- Polymath
- Polymath
- Posts: 14417
- Joined: September 9, 2010
- Pronoun: he/him
- Location: zoraster's wine cellar
This isn't a feature of going from high level -> low level though, semicolons and curly brackets and other syntactical design choices ultimately have very little to do with the language's functionality. Going from any language to any other language with different design choices will have this happen and it isn't a result of bad habits, it's just a result of getting used to new syntax. Sure going from low level -> high level will be easier than high level -> low level but going from nothing -> low level languages like c especially is just cruel. Having to understand c/c++'s memory management system and the myriad ways in which it can screw you over without understanding basic programming principles is not easy.In post 5, Accountant wrote:I guess I can see the upsides of learning a higher level language first, but like that's what I did and holy shit did I pick up some terrible habits from it. I spent the first week of learning Java just cursing because I forgot to put the semicolons or curly brackets.
+1 the suggestion of Project Euler if you're into math - it's especially good because it has a very good learning curve of problems. The earliest problems can be solved with brute force approaches, so they're good for testing your ability to use code to solve a problem at a fairly simple level. Later problems require more optimization or algorithmic techniques, so they're good for testing your understanding of those.
Also echoing this:
One of the skills you'll develop is figuring out what to google based on what error message you're getting. The more you learn to code the more you realize that no one really remembers all of the syntactic peculiarities of any given language, they all just google stuff whenever they forget anything. Stackoverflow and the python language documentation are your friend. Etc.Thestatusquo wrote:Oh and the most important piece of advice I can give you is this: google is your friend.- Psyche
-
Psyche he/theySurvivor
- Psyche
he/they- Survivor
- Survivor
- Posts: 10659
- Joined: April 28, 2011
- Pronoun: he/they
- Mina
-
Mina The Shipwright
- Mina
- The Shipwright
- The Shipwright
- Posts: 3059
- Joined: October 1, 2009
Intro to Computer Science on Udacity was how I first learned Python (recommended by Thesp, actually), and I loved it. (All the course material is available for free.)
The course is meant for total beginners, but it teaches core concepts by walking you through designing Google's search engine. The teacher is great, and I like that it lets you code directly into the browser, but what's best is that it teaches you how to think like a programmer. Some of the sample problems and assignments are really challenging for a beginner, and can take hours to solve.
I personally dislike Codecademy, because it's good for teaching you syntax through rote practice but bad at showing you how to program. (The exercises just hold your hand and go, "Do exactly this, but change the name of the variable!") It's fine for showing a complete beginner that coding isn't as scary as it looks, or for practicing syntax in a different language, but you won't walk away from it having the first idea of how to apply your skills. That said, I found it useful for HTML/CSS since those are mostly about syntax, and the site has some good exercises for designing sample web pages.
There are tons and tons of resources for beginner programmers out there, though--it really depends on what your end goals are. Are you interested in building web sites, designing games, or just useful time-saving tools? (Disclaimer: I'm not a programmer, just someone who went through a phase of being addicted to hopping aimlessly between programming tutorials.)- Mina
-
Mina The Shipwright
- Mina
- The Shipwright
- The Shipwright
- Posts: 3059
- Joined: October 1, 2009
Also, my Mech. Eng. degree had a total of one required programming course, and they decided to divide the semester 50-50 between Fortran and C. The logic of whoever instated the curriculum was a mixture of "university is about TEACHING YOU HOW TO THINK SO THAT YOU CAN LEARN MORE EASILY IN THE FUTURE (from people who aren't us), not teaching useful, employable skills that might become obsolete someday, so we'll start with the hardest of the hard!" and "we've used Fortran since the 70s, and we'll be damned if we're gonna change, so let's train the next batch of potential grad student lackeys early."
C wasn'tsobad for a beginner, though (with the caveat that we only learned as much as can be crammed into half a semester, so probably didn't get to the worst parts).- The_Jester
-
The_Jester Mafia Scum
- The_Jester
- Mafia Scum
- Mafia Scum
- Posts: 1600
- Joined: September 2, 2014
- Location: Wish I knew. The hell is this place anyway?
- Psyche
-
Psyche he/theySurvivor
- Psyche
he/they- Survivor
- Survivor
- Posts: 10659
- Joined: April 28, 2011
- Pronoun: he/they
- Claus
-
Claus Mafia Scum
- Claus
- Mafia Scum
- Mafia Scum
- Posts: 1734
- Joined: June 1, 2007
- Location: Tsukuba
- Contact:
- Porochaz
-
Porochaz Oh, Prozac
- Porochaz
- Oh, Prozac
- Oh, Prozac
- Posts: 9317
- Joined: September 6, 2007
- GuyInFreezer
-
GuyInFreezer Magical Girl
- GuyInFreezer
- Magical Girl
- Magical Girl
- Posts: 18078
- Joined: January 23, 2013
- Location: In your wall
brainf*ck
I also think people should start with interpreted language instead of compiled language, since compiled language done wrong can go south fast.Show"I used to think you had this elegant-trolly, minimalist playstyle. Then I realized the playstyle is ~Lazy~
The true enlightenment was realizing that they are the same thing."
~fferyllt
"who the fuck fakeclaims Tracker like that
WHO THE FUCK DOES THAT"
~Alisae- Thestatusquo
-
Thestatusquo He/HimShea
- Thestatusquo
He/Him- Shea
- Shea
- Posts: 14371
- Joined: July 27, 2006
- Pronoun: He/Him
- Location: Chicago!
Guys keep in mind that you're talking to a beginner. Terms like interpreted language vs compiled language and low level and high level are intuitive to us, but someone just starting out isn't going to know what that means.
You can explain those terms if you want, and that would be helpful, but what is probably more helpful is if you find yourself using terms like that it's probably a 'code smell’ that you're getting too advanced for someone who is literally just starting out.tout comprendre c'est tout pardonner- Thestatusquo
-
Thestatusquo He/HimShea
- Thestatusquo
He/Him- Shea
- Shea
- Posts: 14371
- Joined: July 27, 2006
- Pronoun: He/Him
- Location: Chicago!
This course sounds like it was devised by satan himself.In post 12, Mina wrote:Also, my Mech. Eng. degree had a total of one required programming course, and they decided to divide the semester 50-50 between Fortran and C. The logic of whoever instated the curriculum was a mixture of "university is about TEACHING YOU HOW TO THINK SO THAT YOU CAN LEARN MORE EASILY IN THE FUTURE (from people who aren't us), not teaching useful, employable skills that might become obsolete someday, so we'll start with the hardest of the hard!" and "we've used Fortran since the 70s, and we'll be damned if we're gonna change, so let's train the next batch of potential grad student lackeys early."
C wasn'tsobad for a beginner, though (with the caveat that we only learned as much as can be crammed into half a semester, so probably didn't get to the worst parts).
Fortran? People still use fortran???tout comprendre c'est tout pardonner- Accountant
-
Accountant Jack of All Trades
- Accountant
- Jack of All Trades
- Jack of All Trades
- Posts: 6419
- Joined: May 16, 2015
- Location: Wonderland
So this is the high quality education that people go hundreds of thousands of dollars into debt forThere's nothing that says that a fake can't beat the real thing.
You must not imagine that for beings like you and us there can be laughter. The low men laugh, and we envy them. But for us, the higher ones, there is no laughter, only an unending vigil, purely serious, stretching on into the night.- Psyche
-
Psyche he/theySurvivor
- Psyche
he/they- Survivor
- Survivor
- Posts: 10659
- Joined: April 28, 2011
- Pronoun: he/they
- Accountant
-
Accountant Jack of All Trades
- Accountant
- Jack of All Trades
- Jack of All Trades
- Posts: 6419
- Joined: May 16, 2015
- Location: Wonderland
When I said "this", I was referring to Mina's description of her university, not this thread. Sorry if I was unclear.There's nothing that says that a fake can't beat the real thing.
You must not imagine that for beings like you and us there can be laughter. The low men laugh, and we envy them. But for us, the higher ones, there is no laughter, only an unending vigil, purely serious, stretching on into the night.- Claus
-
Claus Mafia Scum
- Claus
- Mafia Scum
- Mafia Scum
- Posts: 1734
- Joined: June 1, 2007
- Location: Tsukuba
- Contact:
The people in the supercomputing lab next door still use fortran in their own research.In post 19, Thestatusquo wrote:
This course sounds like it was devised by satan himself.In post 12, Mina wrote:Also, my Mech. Eng. degree had a total of one required programming course, and they decided to divide the semester 50-50 between Fortran and C. The logic of whoever instated the curriculum was a mixture of "university is about TEACHING YOU HOW TO THINK SO THAT YOU CAN LEARN MORE EASILY IN THE FUTURE (from people who aren't us), not teaching useful, employable skills that might become obsolete someday, so we'll start with the hardest of the hard!" and "we've used Fortran since the 70s, and we'll be damned if we're gonna change, so let's train the next batch of potential grad student lackeys early."
C wasn'tsobad for a beginner, though (with the caveat that we only learned as much as can be crammed into half a semester, so probably didn't get to the worst parts).
Fortran? People still use fortran???
But they are starting to see the error in their ways. Praise Guido!http://www.youtube.com/watch?v=XVVmAG0RXmo- Thestatusquo
-
Thestatusquo He/HimShea
- Thestatusquo
He/Him- Shea
- Shea
- Posts: 14371
- Joined: July 27, 2006
- Pronoun: He/Him
- Location: Chicago!
Also, mina is canadian, so no.In post 20, Accountant wrote:So this is the high quality education that people go hundreds of thousands of dollars into debt fortout comprendre c'est tout pardonner - Thestatusquo
Copyright © MafiaScum. All rights reserved.
- Claus
- Accountant
- Psyche
- Accountant
- Thestatusquo
- Thestatusquo
- GuyInFreezer
- Porochaz
- Claus
- Psyche
- The_Jester
- Mina
- Mina
- Psyche
- implosion
- The_Jester
- inte
- Claus
- Accountant
- Thestatusquo
- Accountant
- zMuffinMan
- Accountant
- The_Jester