“Learning to Code in Python” Challenge Complete

Read Time: 5 Minutes

Hey guys! It’s time to give you an update on the Python Challenge that I mentioned previously. I’m happy to say that it was a success and I learned some very interesting things while doing it!

I was initially planning to learn Python within twelve weeks. It ended up only taking two (but I kept working on it for the remaining ten weeks anyway), and would have probably taken a week if I had put in more effort.

Let me clarify though, learning Python in a week is definitely possible if you only want to learn the basic programming concepts and ideas. Being a proficient user will take a lot longer, but a week or two is enough to code a few simple programs.

This was my first proper attempt at learning to program (not including a horrible failed attempt at MATLAB a few years ago), so it was all quite new to me. Perhaps the most surprising thing to me was that I found coding to be to be very creative in nature!

We usually think of coding as being logical and strict, but perhaps counterintuitively, there is actually a lot more art involved than you might expect. Once I really started getting into it, I started to understand how code could be described as “elegant” and even beautiful, but we’ll leave that explanation for another time!

Why Start With Python?

Python is such an easy language to learn. It’s been described as being easy enough for a child to read so when I saw that, I immediately thought to myself “That’s what I need”.

The syntax (or structure) is very simple, and you don’t have to worry about missing a semicolon or some of the other finer detail that exists in a lot of other languages. It reads like English, and it’s a great (possibly even the best) first language to learn because you only need to focus on the logic and basic concepts, and not worry too much about the syntax.

That being said, it’s an incredibly powerful language and is commonly used in the fields of Artificial Intelligence and machine learning. This factor, combined with its simplicity, is probably the reason for its explosion in popularity.

Once you’ve learned Python, learning other languages will become remarkably easy, because the logic for all of them is the same and the only real difference is in its syntax (there are larger differences like libraries for example, but that’s beyond the scope of the challenge).

So it might look slightly different, but the concept is essentially the same. Let me show you what I mean. I’ve included two examples of code that are simply used to make the computer display “Hello!”:

Code written in Java

void sayHello() {
  System.out.println("Hello!");
}

sayHello();

Code written in Python

def sayHello():
  print("Hello!")

sayHello()

In Python, there aren’t any curly braces before and after every block of code, nor are there semicolons at the end of each line. Also, System.out.println(Hello!) from Java has been simplified to just print(“Hello!”) in Python!

You can also see that they’re both very similar. That’s what I meant when I said that the concept is basically the same, it’s just the little things in the structure that are slightly different between the languages.

Sources That I Used and Recommendations

I started learning Python on Udacity’s platform (before the price hike), but knowing what I do now, I wouldn’t have started there at all.

You can learn Python for free using many other resources, especially YouTube! They are quite comprehensive and are more than enough to learn the basics.

  • An excellent course that I found is Al Sweigart’s Automate the Boring Stuff which is an online textbook that is free of charge!

Automate the boring stuff with python ebook

  • If you’re a visual learner, he’s also made a video course that is well worth the money. On Udemy, I think it’s $50 but you can use the following link to get it for just $10: Automate the Boring Stuff With Python Programming . This video course is where he walks you through the material and shows you exactly how it works.
  • If you’re unsure, the first 10 videos are available for free on his YouTube channel. 

One thing I’d like to mention is that Automate the Boring Stuff is great especially if you’re just interested in writing code to make practical programs that you’ll actually use even if you aren’t planning to become a programmer.

Programs I’ve Built

I’ve coded a few simple programs in Python to test my understanding of the concepts:

  • The classic Hangman game
  • Guess the Number
  • A madlibs generator
  • A simple password generator.

There are probably higher level coders who will scoff at these, but a surprising number of others are more than willing to lend you a hand and take the time to explain things to you.

If you’re interested to see what I’ve built, you can access the all of the code on My GitHub Page.

example of hangman game written in Python

Most Important Takeaway From this Challenge

  • When learning something for the first time, it seems very alien, but I found that things suddenly fell into place once my brain made those connections. That’s the “aha!” moment when everything suddenly clicks!
  • Don’t feel discouraged if it all seems too difficult and confusing at first!
  • Use the 20 hour rule and I can pretty much guarantee you’re going to find that you can learn Python too.
  • Coding can actually be fun. I know, I know, I sound like a total nerd, but it’s true and I have to accept that that statement will always sound super dorky.
  • Meditation was quite helpful to stay fresh, and to clear the mind when trying to come up with different solutions.
  • Using the Pomodoro technique was really useful here to stay alert and retain what I was learning!

One Basic Misconception I Had About Learning to Code

I used to imagine programmers as people who could sit at their computer and be in complete control, speedily typing out lines of code, hitting enter and sitting back while they watched it execute.

While this does happen some of the time, the reality is a little different. Most coders spend a lot of time figuring out how to solve their problem and get themselves “unstuck”. A lot of the time, they refer to online forums like StackOverflow or a similar site to ask for help or refer to someone else’s solved question.

At first, this might not sounds like much fun at all, I mean, who enjoyed being stuck on a math question in high school right?

Soon though (and quite early on in your learning process),  you’ll find yourself working through some extremely interesting problems that you’ll actually enjoy working out.

What I’m Working On Next

I’m still working on the French in 12 Weeks challenge, and I’ll be back very soon to update you on that.

My next challenge however, will be a little different! I’m planning to start an online 30-day challenge to learn to draw, and I’m hoping you’ll join in! I’ll create a hashtag so everyone who wants to participate can upload their progress on any social media.

I’m planning to use Steve Huston’s Beginner Head Drawing course New Masters Academy to complete my portrait challenge, but you are more than welcome to use any resource that you like!

As always, I enjoy hearing from you, so leave a comment below and let me know your thoughts on this!

Author: Sanjay Sudhakaran

I'm an aspiring multipotentialite or polymath: I intend to learn programming, French, become a professional guitarist, read at least 10 books this year, travel to 10 countries within the next two, and work on my own business. In the process, I plan to share my journey and everything I've learned on thepolymathideal.com!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s