Introduction to programming (Python)- help with materials

This forum is for discussion about anything else.
User avatar
The_Jester
The_Jester
Mafia Scum
User avatar
User avatar
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

Post Post #0 (ISO) » Thu Jul 07, 2016 12:02 am

Post by The_Jester »

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!
User avatar
Accountant
Accountant
Jack of All Trades
User avatar
User avatar
Accountant
Jack of All Trades
Jack of All Trades
Posts: 6419
Joined: May 16, 2015
Location: Wonderland

Post Post #1 (ISO) » Thu Jul 07, 2016 12:07 am

Post by Accountant »

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.
User avatar
zMuffinMan
zMuffinMan
Survivor
User avatar
User avatar
zMuffinMan
Survivor
Survivor
Posts: 20915
Joined: March 10, 2011

Post Post #2 (ISO) » Thu Jul 07, 2016 12:35 am

Post by zMuffinMan »

In post 1, Accountant wrote:Though for an absolute beginner you should start with C.
wat
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
User avatar
Accountant
Accountant
Jack of All Trades
User avatar
User avatar
Accountant
Jack of All Trades
Jack of All Trades
Posts: 6419
Joined: May 16, 2015
Location: Wonderland

Post Post #3 (ISO) » Thu Jul 07, 2016 12:39 am

Post by Accountant »

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.
User avatar
Thestatusquo
Thestatusquo
He/Him
Shea

User avatar
User avatar
Thestatusquo
He/Him
Shea

Shea

Posts: 14367
Joined: July 27, 2006
Pronoun: He/Him
Location: Chicago!

Post Post #4 (ISO) » Thu Jul 07, 2016 1:40 am

Post by Thestatusquo »

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.
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.

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
User avatar
Accountant
Accountant
Jack of All Trades
User avatar
User avatar
Accountant
Jack of All Trades
Jack of All Trades
Posts: 6419
Joined: May 16, 2015
Location: Wonderland

Post Post #5 (ISO) » Thu Jul 07, 2016 2:16 am

Post by Accountant »

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 line :P
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.
User avatar
Claus
Claus
Mafia Scum
User avatar
User avatar
Claus
Mafia Scum
Mafia Scum
Posts: 1734
Joined: June 1, 2007
Location: Tsukuba
Contact:

Post Post #6 (ISO) » Thu Jul 07, 2016 2:45 am

Post by Claus »

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
User avatar
inte
inte
Mafia Scum
User avatar
User avatar
inte
Mafia Scum
Mafia Scum
Posts: 3523
Joined: November 15, 2011
Location: C-bus

Post Post #7 (ISO) » Thu Jul 07, 2016 3:21 am

Post by inte »

In 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.
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 programming

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 luck
Show
W(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.
User avatar
The_Jester
The_Jester
Mafia Scum
User avatar
User avatar
The_Jester
Mafia Scum
Mafia Scum
Posts: 1600
Joined: September 2, 2014
Location: Wish I knew. The hell is this place anyway?

Post Post #8 (ISO) » Thu Jul 07, 2016 7:26 am

Post by The_Jester »

Thank you all for in-depth responses! Will do my best. Who knows, maybe someday I'll be of use to this site :P
Why'd the clown drive over the cup?
He wanted to crack him up!
User avatar
implosion
implosion
he/him
Polymath
User avatar
User avatar
implosion
he/him
Polymath
Polymath
Posts: 14416
Joined: September 9, 2010
Pronoun: he/him
Location: zoraster's wine cellar

Post Post #9 (ISO) » Thu Jul 07, 2016 7:50 am

Post by implosion »

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.
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.

+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:
Thestatusquo wrote:Oh and the most important piece of advice I can give you is this: google is your friend.
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.
User avatar
Psyche
Psyche
he/they
Survivor
User avatar
User avatar
Psyche
he/they
Survivor
Survivor
Posts: 10574
Joined: April 28, 2011
Pronoun: he/they

Post Post #10 (ISO) » Thu Jul 07, 2016 8:22 am

Post by Psyche »

i used tutorialspoint
User avatar
Mina
Mina
The Shipwright
User avatar
User avatar
Mina
The Shipwright
The Shipwright
Posts: 3059
Joined: October 1, 2009

Post Post #11 (ISO) » Thu Jul 07, 2016 9:55 am

Post by Mina »

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.)
User avatar
Mina
Mina
The Shipwright
User avatar
User avatar
Mina
The Shipwright
The Shipwright
Posts: 3059
Joined: October 1, 2009

Post Post #12 (ISO) » Thu Jul 07, 2016 10:03 am

Post by Mina »

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't
so
bad 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).
User avatar
The_Jester
The_Jester
Mafia Scum
User avatar
User avatar
The_Jester
Mafia Scum
Mafia Scum
Posts: 1600
Joined: September 2, 2014
Location: Wish I knew. The hell is this place anyway?

Post Post #13 (ISO) » Thu Jul 07, 2016 10:07 am

Post by The_Jester »

Wow I didn't expect such overwhelming feedback. Love y'all <3
Why'd the clown drive over the cup?
He wanted to crack him up!
User avatar
Psyche
Psyche
he/they
Survivor
User avatar
User avatar
Psyche
he/they
Survivor
Survivor
Posts: 10574
Joined: April 28, 2011
Pronoun: he/they

Post Post #14 (ISO) » Thu Jul 07, 2016 10:10 am

Post by Psyche »

everyone loves python python is the greatest
User avatar
Claus
Claus
Mafia Scum
User avatar
User avatar
Claus
Mafia Scum
Mafia Scum
Posts: 1734
Joined: June 1, 2007
Location: Tsukuba
Contact:

Post Post #15 (ISO) » Thu Jul 07, 2016 1:31 pm

Post by Claus »

Image
http://www.youtube.com/watch?v=XVVmAG0RXmo
User avatar
Porochaz
Porochaz
Oh, Prozac
User avatar
User avatar
Porochaz
Oh, Prozac
Oh, Prozac
Posts: 9317
Joined: September 6, 2007

Post Post #16 (ISO) » Thu Jul 07, 2016 3:13 pm

Post by Porochaz »

This thread is relevant to my interests.

(as in egopost for later)
Mostly retired. Unless you ask or it's something interesting.
User avatar
GuyInFreezer
GuyInFreezer
Magical Girl
User avatar
User avatar
GuyInFreezer
Magical Girl
Magical Girl
Posts: 18078
Joined: January 23, 2013
Location: In your wall

Post Post #17 (ISO) » Thu Jul 07, 2016 5:27 pm

Post by GuyInFreezer »

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
User avatar
Thestatusquo
Thestatusquo
He/Him
Shea

User avatar
User avatar
Thestatusquo
He/Him
Shea

Shea

Posts: 14367
Joined: July 27, 2006
Pronoun: He/Him
Location: Chicago!

Post Post #18 (ISO) » Thu Jul 07, 2016 7:55 pm

Post by Thestatusquo »

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
User avatar
Thestatusquo
Thestatusquo
He/Him
Shea

User avatar
User avatar
Thestatusquo
He/Him
Shea

Shea

Posts: 14367
Joined: July 27, 2006
Pronoun: He/Him
Location: Chicago!

Post Post #19 (ISO) » Thu Jul 07, 2016 11:26 pm

Post by Thestatusquo »

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't
so
bad 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).
This course sounds like it was devised by satan himself.

Fortran? People still use fortran???
tout comprendre c'est tout pardonner
User avatar
Accountant
Accountant
Jack of All Trades
User avatar
User avatar
Accountant
Jack of All Trades
Jack of All Trades
Posts: 6419
Joined: May 16, 2015
Location: Wonderland

Post Post #20 (ISO) » Thu Jul 07, 2016 11:45 pm

Post by Accountant »

So this is the high quality education that people go hundreds of thousands of dollars into debt for
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.
User avatar
Psyche
Psyche
he/they
Survivor
User avatar
User avatar
Psyche
he/they
Survivor
Survivor
Posts: 10574
Joined: April 28, 2011
Pronoun: he/they

Post Post #21 (ISO) » Fri Jul 08, 2016 1:29 am

Post by Psyche »

no this is a thread on an internet forum
User avatar
Accountant
Accountant
Jack of All Trades
User avatar
User avatar
Accountant
Jack of All Trades
Jack of All Trades
Posts: 6419
Joined: May 16, 2015
Location: Wonderland

Post Post #22 (ISO) » Fri Jul 08, 2016 1:39 am

Post by Accountant »

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.
User avatar
Claus
Claus
Mafia Scum
User avatar
User avatar
Claus
Mafia Scum
Mafia Scum
Posts: 1734
Joined: June 1, 2007
Location: Tsukuba
Contact:

Post Post #23 (ISO) » Fri Jul 08, 2016 3:15 am

Post by Claus »

In post 19, Thestatusquo wrote:
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't
so
bad 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).
This course sounds like it was devised by satan himself.

Fortran? People still use fortran???
The people in the supercomputing lab next door still use fortran in their own research.

But they are starting to see the error in their ways. Praise Guido!
http://www.youtube.com/watch?v=XVVmAG0RXmo
User avatar
Thestatusquo
Thestatusquo
He/Him
Shea

User avatar
User avatar
Thestatusquo
He/Him
Shea

Shea

Posts: 14367
Joined: July 27, 2006
Pronoun: He/Him
Location: Chicago!

Post Post #24 (ISO) » Fri Jul 08, 2016 7:39 am

Post by Thestatusquo »

In post 20, Accountant wrote:So this is the high quality education that people go hundreds of thousands of dollars into debt for
Also, mina is canadian, so no.
tout comprendre c'est tout pardonner
Post Reply

Return to “General Discussion”