Hacker News Comments on
Introduction to Python Programming | Udacity
Hacker News Stories and CommentsAll the comments and stories posted to Hacker News that reference this url.
In which case you may want to follow Udacity Com Sci 101 which includes building a search engine in python. (Free, video based https://www.udacity.com/course/intro-to-computer-science--cs...)
For learning Python and basic algorithmic knowledge (like the other links, free) - https://www.udacity.com/course/intro-to-computer-science--cs...
I'd say to get to lesson 2 and from there spend 90% of your time solving Codewars challenges and the other 10% continuing the course. The former 90% will make the latter 10% a breeze. Google whenever you have a specific question and expect to search that same thing many times before you remember it.
I challenge you not to enjoy this.
Udacity has another Python course (OOP with Python). It feels very 'on rails' and isn't much fun. I'd skip it.
For syntax - * https://www.udacity.com/course/intro-to-computer-science--cs... * https://www.codewars.com/dashboard
Complete Codewars challenges alongside Udacity. That'll give you a strong grasp of creating and using functions.
Beyond that, I have no idea as that's about where I'm at now with both Js and Python. I'm headed to a meetup later this week for Js and I'm probably just going to ask to paor program with somebody to learn what it's like to actually make things.
Agreed with it basically being lots of hard work, and that you have to be very motivated.
I'm currently 29, working as a Software Developer, and also started late. Got my MSc in Oceanography, had some basic programming experience (built basic websites for beer money, some light scientific programming), but not much. Decided I liked the analytics more than the rest of science, and got a job at a SaaS company as a Data Analyst. Really started falling in love with programming quickly there, and did the following: - took online courses like crazy (often waking up early to get some in before work, and more on evenings/weekends when possible) - always took on the most technical tasks at work, where I'd get to write as much Python/R/SQL as possible - started a coding club at work, great for group learning and motivation
After ~2 years of this I had gotten myself to a point where I could legitimately work as a Software Developer, and got a new job as one (at the same company). Stayed in my area of expertise, data science/analytics, but as a developer instead of an analyst.
I wouldn't suggest codeacademy, though. Maybe it's changed since I tried it, but my experience was that they introduced you to a bunch of syntax, but left out most of the fundamentals of how computer science and how to structure programs. I'd much more strongly suggest taking more involved courses. Some of my favourites include (note - bias towards Python, Scala and SQL courses, as that's what I happen to use a lot of):
Intro to Comp Sci (Python) https://www.udacity.com/course/intro-to-computer-science--cs...
Intro to Web Dev (Python) https://www.udacity.com/course/web-development--cs253
Data Structures and Algos (Python): http://interactivepython.org/runestone/static/pythonds/index...
Functional programming (Scala): https://www.coursera.org/course/progfun
Reactive programming (Scala): https://www.coursera.org/course/reactive
Good databases courses (boring but good content): https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/abou...
My personal feeling is that things like codeacademy get you superficial knowledge, like learning to use tools, when what you really want is deeper knowledge about how to build houses, regardless of the tools.
I did https://www.udacity.com/course/cs101 Intro to Compsci and cs253 Web Dev. cs253 in particular is good, taught by Steve Huffman who built Reddit. They are fairly easy and probably at a simpler level than MIT/Stanford type stuff. Huffman's is more of a practical guide to building scalable sites rather then academic stuff.
⬐ muraikiI strongly recommend CS253. The course has just the right level of depth. Unless it's changed, it uses Google App Engine, but don't worry about that because it teaches you all the concepts about web development that you need to know to move on. This course was one of the biggest things that led to me becoming a professional developer (the other was http://www.ccs.neu.edu/home/matthias/HtDP2e/ although I didn't finish it completely)
I really enjoyed that article. I read it over a year ago while I was doing Udacity’s [Intro to Computer Science](https://www.udacity.com/course/cs101) course where you learn to build a web crawler and implement a basic page ranking algorithm.
I don't know if Swift would be the best language to learn programming. Python is probably a better option. I would avoid platform specific languages until you are hired to work in that space. Open platforms like Python are much easier than close platforms to get started in Computer Science.
A good place to start with python would be the Introduction to Computer Science course on Udacity.
If you are interested in ML, I can recommend taking the Programming Languages course on Coursera after the python course.
⬐ platzThe Programming Languages course on Coursera: highly recommended
⬐ bredmanThanks, I haven't looked at Udacity much so I'll give that look. I like using Python as it's a bit practical.
To clarify her goal isn't to land a job, just to learn a new skill and be able to relate to her coworkers that are doing more coding better.
Our field is wonderful in the way it encourages and rewards those who, with or without formal training, make things people want.
Learn by doing.
And if you feel now or in the future that you'd like a dash of fundamentals to go with your programming practice, you have options beyond those of traditional education. For example, Udacity has a great Introduction to Computer Science online class:
The free courseware includes the lectures and auto-graded exercises. It's Python-based, but goes beyond programming languages to touch on foundational CS concepts in general. Recommended.
A bit of advice from someone who is trying to do the same:
- Learn one language/ platform at a time. Also, think about what you want to learn. Web development? Mobile? CS fundamentals? It is very easy to waste alot of time when your are not focussed on a particular goal.
- Try not to get tricked into spending to much time on those fancy looking tutorials. Building something yourself is much more valuable than obtaining meaningless 'badges' and achievements.
- Ruby on Rails is complex and I would not recommend it for beginners. I wasted alot of time doing tutorials that covered random parts of rails that I never used in projects. Again, if you want to learn Rails, start your own project as soon as possible and select learning materials based on that.
- Stick with the basics. Try not to get distracted by frameworks, tools and the overwhelming amount of tutorials available.
Ruby / Python:
⬐ iamryandrakeAgreed Thomas! Thanks for your input.
I am learning for the sole intent of then being able to immediately put into action what I've learnt within the startup environment and also contribute to open source projects where I can :)
What are you learning?
Udacity CS101  also goes through the basics of building a web crawler. It's a lot more lightweight (no backend, etc), but it's a fun overview and can be completed pretty quickly.
⬐ mattcanhackI took this when it first came out, definitely a good course for beginners or intermediates.
I would recommend looking at the Real Python courses as well, although after learning the basics from Dive into Python or LPTHW. After the introduction, it starts teaching you how to start doing practical things with Python.
I also enjoyed taking Udacity's CS 101 course which is great as an intro programming course overall.
"I worry that it could be a waste of time"
It's education. If you want to stay 20 years in this industry, you have to invest in your education. Don't worry, just do it. Solving the problems would make you a better problem solver.
"I feel that most prospective employers don't really care about that, though."
That's right. Most prospective employers don't care. Don't work for them. If you have to, read my last answer.
"In otherwords, is SICP worthy of a CV bullet point."
Yes, really good developers would appreciate the effort. Employers won't care but the senior developer taking your technical interview may appreciate it.
"I should be focusing on more practical projects before looking for a first job." Yes, you must do that. Nothing beats showing a perfectly operational website. And depending on the profile you are targeting it can be a Android game or Web game or scraper or anything. Don't worry your github profile yet. Once you start building stuff it will come alive.
You can also check out https://www.udacity.com/ for some practical courses. They are taught by awesome people and are free. All these courses focus on a project to teach you basics of computer science. And you get real world skills.
1. Building a Search Engine - Introduction to Computer Science - https://www.udacity.com/course/cs101
2. Building a HTML5 game - HTML5 Game Development - https://www.udacity.com/course/cs255
3. Building a Blog - Web Development - https://www.udacity.com/course/cs253
4. Building a Browser - Programming Languages - https://www.udacity.com/course/cs262
5. Building blocks of any non - trivial software project - Design of Computer Programs - https://www.udacity.com/course/cs212 .
All the best learning CS, building things and contributing to the world.
Thanks for the positive replies fellas!
I've started in on this intro Python course at Udacity: https://www.udacity.com/course/cs101
As for typing speed, I think I clock in somewhere around 70 to 80wpm accurately, so I'm good there.
I'm really looking forward to the challenge. Thanks again!
I was able to pick up Python pretty effortlessly (coming from a zero programming experience background) through Udacity's search engine course. If you're coming from little or no experience, you can easily pick up on Python. Like everything else, it just takes time to get used to.
If you happen to go the Python route, here are a few resources that helped me:
Udacity's Search Engine Course https://www.udacity.com/course/cs101
Google's AppEngine (for Python development) https://developers.google.com/appengine/
Django - Web Framework for Python https://www.djangoproject.com/
I've learned Python exactly same purposes as a hobbyist. Although it depends on your learning curve, Its easy to start and continue. You can find tons of examples for every level. Also if you interested with web developing, Django (Python web framework) can be good solution. If you are total beginner, this lesson will be very useful: https://www.udacity.com/course/cs101