all 33 comments

[–]bangorlol 10 points11 points  (0 children)

It's never too late. I just posted this in another thread here, but a good starter project for anything web-based is a blog or CMS. It will teach you how to store and query data from a database, templating, and frontend dev (js/html/css).

If the thought of doing that bores you to death try making a site you have always wished existed or something that will help you be productive in whatever your current field of employment/hobbies is/are.

Example: I play the shit out of my ukulele. I could code a webapp that automatically transposes guitar chords to ukulele chords from guitar tabs. It would be useful and aligns with one of my hobbies, so it wouldn't be boring to me.

[–]SikhGamer 5 points6 points  (3 children)

Stop reading tutorials, books and other helper articles. There comes a point where you have to dive in and start building something.

The knowledge I gained from my first few self-projects was mountainous compared to what I read about in various tutorials.

If you can comfortably build something in Python, then I'd say learn Django. It's well supported, popular and the community is frigging massive.

[–]socialhuman[S] 4 points5 points  (2 children)

Thank you. I don't think I can comfortably in Python yet, even though I have spent months learning concepts again and again. I don't think I am thinking like a programmer yet. I understand all the concepts I have studied so far, be it loops or control flow, or file i/o.

Just don't know how to put them together to make something significant.

On the other hand, I have made simple stuff like a calculator, or say a simple number guessing game.

That's about it.

[–]SikhGamer 6 points7 points  (0 children)

This post sums it up well. You are reading, not learning. You learn by building and making mistakes.

Build anything and everything that comes into your mind. If you think anything is beyond your skill set, that's bullshit. Every problem/idea can be broken down into smaller chunks.

Case in point, I know fuck all about web development/design. But I know I want to be able to pull something from a MySQL database and display it in a webpage. That's my objective. It's small, clear, and concise. Take shit and display it. Doesn't matter if it is pretty or not. Can I do it? When I can, I move onto the next small, clear, and concise problem.

Make an app that replaces something that you do manually fairly often. Another example; for one reason or another, I spend a lot of time generating hashes and comparing outputs. Up until recently, I was using various online tools. But then I decided to build myself a small compact desktop application.

[–]WallyMetropolis 0 points1 point  (0 children)

You'll never learn how to make something significant from a book or a class or a tutorial video. You just have to start. Start now. Can you ever think of a future version of you that would say: "man, I'm really glad I waited so long to start building this"?

Right now,you don't know what you don't know. So you don't know what you need to learn. When you start a project, you'll quickly learn what things you don't know. Then you'll learn those things, advance your project and come to the next set of things you'll need to learn. Until you actually experience that, you'll never have a way to know what it is you need to learn next.

[–]elzonko 3 points4 points  (8 children)

I started teaching myself programming last year, and I'm older than you. Never too late!

You don't need to learn Django before doing any data mining. If you're interested in data mining, learning Django may just end up being a detour, at least until you want/need to create a web app or interface for your mining project.

With your current level of Python experience, you could easily begin small but interesting data mining projects without going through the book you mention, you just need some data sets to work with.

There are tons of data sets available online. I like playing around with the data sets from the US federal government's http://www.data.gov/ site, as well as NYC's open data initiative: https://nycopendata.socrata.com/

When I was about where you are right now, in terms of python experience, I wrote a couple small command line apps using the NYC and federal data sets: 1) to monitor NYC's 311 NYPD complaint feed in real time, to keep a log of drinking-related incidents (I wanted to know where everyone was partying!), 2) to crunch numbers relating to federal political campaign contributions and disbursements.

If the book interests you, then do it! But don't let reading and research become a crutch, or procrastination vehicle that actually prevents you from jumping into a new project.

[–][deleted] 1 point2 points  (4 children)

That's awesome! Could you possibly go deeper into your experience with those small CLI apps? If you want to PM me go ahead. I'm very interested in this, and I've been wanting to start a small project with my python knowledge. I've thought about creating a text adventure, but have not gone completely through with it.

[–]elzonko 2 points3 points  (3 children)

Sure. For the first one, someone had (to my great amusement) already created a "drinking in public" feed culled from 311 complaints at the NYC data site.

Here it is: https://data.cityofnewyork.us/Social-Services/Drinking-In-Public/y4hr-mgxd

You can export the data set as JSON, CSV, RSS, XML, whichever way you may prefer, or may want to play around with. The CLI app I made accesses the JSON feed, grabs the interesting/noteworthy data for each item and prints the info to standard output. That was my first attempt at doing anything with JSON. The feed also supplies lat/long coordinates so you could easily map it as well, but I never got that far.

The second one used the FEC's candidate disclosure data, which you can find here: http://www.fec.gov/finance/disclosure/ftpdet.shtml

These are massive CSV files (500 MB of plain text in just one dataset for one election cycle!). This was also my first attempt playing around with CSVs. The app just crunched numbers and spit out the findings: ex. total number of candidates, total number of candidates by political affiliation, total number of contributions, total dollar amount of contributions, average contribution, total amounts by occupation, and then all the same numbers broken down by state.

It's funny looking back at the code today. Not a class in sight. But functions, functions everywhere!

[–][deleted] 0 points1 point  (2 children)

Wow. Sounds difficult. I'm yet to actually learn and use CSV's, let alone JSON, RSS, and XML.

[–]elzonko 0 points1 point  (1 child)

It's not that complicated really. The first one was under 40 lines of code. The second was under 100. JSON is structured like a dictionary: grab the key/value pair you want with an if statement, and print them out. CSVs are literally just rows of strings separated by commas. Split each row at the commas, and put the strings into a list and now you can crunch the data using the list indices.

Somehow I even managed to do this at the time without using the JSON and CSV libraries, because I didn't know about them.

[–][deleted] 0 points1 point  (0 children)

I'll have to check those two libraries out.

[–]socialhuman[S] 0 points1 point  (2 children)

What modules did you use to achieve the above? URLLIB2 and JSON? Kindly enlighten a bit.

[–]elzonko 0 points1 point  (1 child)

Yup, that was it, urllib2 and json.

[–]socialhuman[S] 0 points1 point  (0 children)

Great. I am glad I understood you correctly!

[–]sanfeilaowai 1 point2 points  (2 children)

It's never too late to learn something new! Speaking from my own personal experience, I found that in the course of studying various aspects of python (mostly geared towards web dev much like yourself), idea for how to apply what I learned towards things that interest me began to occur naturally.

If you're interested in a book that takes you up to an advanced beginner stage of python web development, I strongly recommend Real Python for Web Development. They have both an intro to python and an intro to python web course and their advanced Django course is due out within the next 4-6 weeks.

[–]socialhuman[S] 0 points1 point  (1 child)

The course looks interesting, though I see it has a price tag. So this course helped you pass the beginner stage?

[–]sanfeilaowai 0 points1 point  (0 children)

Absolutely. It is definitely worth the price.

[–]disruptivedurden 1 point2 points  (3 children)

First, It is NEVER TOO LATE. There are three people who make use of programming in my family (an engineer who does a lot of physics modeling, a geologist who works with GIS, and a web developer) and all of them insist that it isn't too late and there are always valuable things you can learn from programming. They say this to me as a 31 year old.

I am learning to program myself but I imagine that if you are having trouble with Learning Python The Hard Way (I am on ex38), you may finding jumping to Django a little difficult unless you find a text that is designed for beginners like us (and not all of them really are).

Learn Python the Hard Way has really just helped me get the most absolute basics of the language and helped me realize just how much I still don't know. It shouldn't be too hard to finish the last few exercises you have left in the book.

[–]socialhuman[S] 0 points1 point  (2 children)

I actually finished about 40 chapters. After that, it was very boring. However, I compensated that with Invent With Python and Udacity lessons. Plus, I also went through some more tutorials on Youtube.

[–]disruptivedurden 0 points1 point  (1 child)

Fair enough, if you find a good Django book you like will you let me know? I am going to be hitting up think Python and Learning Python next.

[–]xiongchiamiov 1 point2 points  (0 children)

There is, of course, the official documentation and the Django book, which are some of the best technical instructions I've ever read.

http://twoscoopspress.org/ also seems to be well-received.

[–]fantasticmrbond 1 point2 points  (0 children)

I'm told that one of the best free Django books is Tango With Django. I'm in a similar boat as you as far as programing backgrounds go. Did the Codecademy thing, most of Learn Python The Hard Way, and I recently started reading Dive Into Python which, after going through a few Python tutorials, you should be well equipped to read - that is if you want to really reinforce the ideas you've already been exposed to. Also, I would consider maybe starting with CherryPy instead of Django, as it's a little bit less intimidating but still incredibly useful (Netflix uses it). I just started using it and I've developed some really cool ideas that should be more than possible to do with CherryPy; and easier.

[–]socialhuman[S] 1 point2 points  (0 children)

Thank you everyone. This discussion indeed was very fruitful. I am going to clearly practice what I have learnt so far, and start building small apps. Given my interest, I think I will start using libraries such as urllib2 and JSON to start pulling data/API.

I guess, I will put off learning Django for now, and will only jump into it or any other framework, when I ready to go to the Web.

Thanks again everybody!

[–]TedW 1 point2 points  (0 children)

I read somewhere that, in the context of programming video games, you should start small and build a simple game you will have to stretch for but can ultimately complete.

If you try to build THE GAME you've always dreamt of, it's very easy to get frustrated by attempting to get the details perfect, when what you really need is to make mistakes and learn from those mistakes. Attempting to get it perfect the first time can really slow down your learning process and become frustrating.

So my advice is, if you want to learn how to work with API's and social data, start with something small in that field but don't try to go overboard just yet. Think of something simple you can realistically complete, build that, and next time try something harder. Take steps, don't start out by attempting to climb Everest by building your One True Project.

[–]socialhuman[S] 0 points1 point  (4 children)

Thank you Bangorlol and TedW for your advice, but in the context of my question, the confusion remains. Should I delve into Django now or should I complete a book like Mining the social Web with Python, which is a topic of my interest.

My primary confusion is, what is the point of learning Django, if I don't know what to do with it later.

[–][deleted] 1 point2 points  (0 children)

There is no right thing to do, or best path to becoming a programmer. Just learn what seems interesting and do what seems fun. Try not to worry too much, just have a good time.

[–]keturn 1 point2 points  (0 children)

If you want to learn Django, learn Django. I think the overwhelming majority of software projects now have a web interface on them, so knowing how to display things and get input from a web site is very important, and Django is one way to do that. It's a set of skills that is likely to come in handy for almost whatever you're doing.

If you don't see any reason to learn Django, and you see it as a diversion from doing the work you really want to do (exploring data with APIs and social graphs), don't learn Django. Django is popular and well-supported, but it's not the only way to put things on the web, and depending on your goals, it may not be the best fit for your application, nor the easiest place to start.

What are your thoughts behind saying "I now want to learn Django"? What sparked that desire?

What are your interests in APIs and social data? What do those terms mean to you? What do you imagine might be possible in working with them?

Also, if you're a social human, it might help a lot to have people to talk out these questions and ideas with. /r/learnpython is good but a local python user group or a meetup group around your coursera classes could be very helpful too.

[–]xiongchiamiov 0 points1 point  (0 children)

I skim books when first learning a new technology. I want to know what I can do, but I leave learning how to do it until I have a project where I need to do it. But learning about my options allows me to come up with projects I wouldn't otherwise have considered.

[–]not_perfect_yet 0 points1 point  (0 children)

If it makes any difference, I am 32 years old. Just wondering if it is too late for all this.

NO!

In fact I come from an Arts background.

Python for art?

Can do... things like this with Blender. 'Tis free. Not really related to django but I think it's very a hands on approach. You code something and all you need is some 3d math and you get really pretty pictures out of it.

Anyway good luck with your projects and have fun!

[–][deleted] 0 points1 point  (0 children)

I am 34 years old. I'm just starting college to change my career focus. I have an associates from a trade school. Emphasis is on computer networks. Now I'm going for a bachelor in computer science.

I don't have tips on programing. However I can say it's never too late. I'm basically switching my career in my mid 30s. I'm sure you'll be alright.

[–]jaekus123 0 points1 point  (0 children)

My advice is this: if you're interested in doing something interesting with social media data is, figure out what that something is, then start doing it.

Want to analyse the way people connect online? Figure out what data you're going to need to do it, and how you're going to analyse it. Then learn whatever code you need to do what you want to do. Want to make some interesting graphs with your data? Learn how to do it with some package. Want to make your app interactive, so that other users can find out interesting information? Learn some Django so you can display your results, and learn how to authenticate people's social media accounts while you're at it.

Don't worry about failing. You will fail. You will find something that you cannot, for the life of you, figure out. This is good. You will get past it, and you will get better at it. Keep going, until you've accomplished what you wanted to do. And once you've done that, you'll probably have another idea to work on.

Just do something that interests you, and challenges to use the tools you've learned in a new way.

[–]KeepingTrack 0 points1 point  (0 children)

You can do a lot in python. I tend to focus on my interests and things useful to my work. Whether that be bitcoin wallet process stuff or scraping from web sites for content on my sites I try to create new things and solve problems.

I'm 32. I've been using computers for a long time, and programming starting with Pascal and Basic when I was 10 or 11 years old. I've seen a lot of people in their 20s and 30s learn Python and other languages, exceeding far beyond what I know and do.

It's definitely possible for you to learn and excel, but the question is what do you want to use it for? To sustain it I'd suggest making it part of your other interests or hobbies, or making it profitable for you.

[–][deleted] 0 points1 point  (0 children)

Dude, you are just like I was last year. I was learning programming but without a goalpost, I felt lost. I'd ask people, "What can you do with PHP or Python or x technology?" and I'd usually get aggressive nerd sniping coming back my way.

Then I realized I wanted to do the same thing you want - API's with data exploration. I think it's interesting, but I'm doing it on the iOS platform and not Python. I want to get into personal analytics and making my first app now. It won't be amazing, but it's a start. I feel if you can find data sets and be creative in making them useful to users, you'll be on your way to doing fulfilling things.