Tag Archives: programming

How to learn to code – other people’s advice /5

I am glad to see that some of the readers are taking advantage from some of the advice I got from other programmers.

Here is another advice I received:

I’ve never tried a freelance site yet. However, I am working on freelance projects for 3 outside companies now. They found me themselves on LinkedIn. Hmm….I think it’s too early to try to get a software job. I don’t know if people would hire you with no experience. You can always try, of course.

Whatever way you can learn and get experience, go for it. A good way is to contribute to open source projects. That means you must first learn GitHub and Git. Look at popular projects on GitHub: https://github.com/explore

Here’s a popular Python project: https://github.com/poise/python

Here are current “issues” for this project. Problems, bugs, features that they need someone to fix for them: https://github.com/poise/python/issues

Here are the latest “commits” (code uploads) to its master branch. You learn a lot from studying what code changes people make to a project: https://github.com/poise/python/commits/master

Here are its latest “pull requests” (new code changes that developers are asking the main developer to accept for merging in the master branch): https://github.com/poise/python/pulls

See? Study how code gets made and changed day by day by studying these details for different projects on GitHub. Feel free to contribute your own changes/issues/fixes to a project. People are very picky about what code they will accept. If they reject your code, they will give you comments and tell you what to fix/improve. This whole culture of contributing to open source projects on GitHub will teach you the daily process of software development.

We do the exact daily routine at work. We have meetings every 2 weeks to figure out the main issues each of us will work on in 2 week “sprints.” Then each morning we meet and talk about what we’ve accomplished so far. We each make a new branch on GitHub to work on our feature or bug fix. Every day we commit and push new code to that branch. When we feel we’re done, we make a “pull request” to our boss to merge our branch with the main branch. He may accept it or reject it with comments on how to improve our code. We also do a demo every 2 weeks to management and our team of what we’ve done.

That’s how our job is like. So yeah, eventually try fixing problems people have on different projects on GitHub. That’s a fantastic way to really learn and get critiqued by experienced software developers worldwide. IF you have a bunch of open source contributions highlight that on your resume. That’s impressive, because it means your code is up to their high standards.

Here’s the prework site for my school, Flatiron. They give you a bunch of suggested tutorials/links to prepare to be: 1) a Ruby on Rails web developer or 2) an iOS developer. http://prework.flatironschool.com/

You don’t have to cover everything. First just focus on your main language (like Python). Eventually you’ll have to become a T (deep knowledge in 1 main language, with broad more superficial knowledge in several other languages).


How to learn to code – other people’s advice /4

I still have quite a lot of other programmer’s advice so here is the 4th post about it.

I do hope that you find this serie (other people’s advice) useful and that you can learn from it. Because previous answer was too long I am posting the second part of the answer here, which makes it advice No. 4 already.

I started with Project Euler and did 50 problems on it.

The wonderful thing about Project Euler is they have discussion forums where programmers from around the world post over 200 solutions to the same problem, in 20+ languages, from 20+ countries. You may only go into the discussion forum for a problem when you get the right answer. After you do that, you learn SO MUCH from seeing how other people solved your same problem in much better, faster, and more efficient ways than you, in multiple languages. Then you rewrite your solutions to incorporate those coding and algorithm tricks you learn from others.

Spending weeks solving Project Euler was extremely frustrating but incredibly stimulating for my mind and really valuable later on. Those are some of the toughest problems you can do, and you can use any language you wish (or multiple languages). The specific languages DOES NOT MATTER. What matters during job interviews is HOW YOU THINK AND ANALYZE PROBLEMS. That’s what companies seek—people who can adapt quickly, in any language, to any programming challenge a job throws at you. You can hone your coding skills by doing tough programming challenges like those sites I listed above.

Once you can do tough challenges like Project Euler, everything else in programming (building websites, etc.) will seem easier to you. It’s like doing pushups for your mind. Or running a marathon. Once you can do that, then running a kilometer is easy.

How this guy used Project Euler to learn how to code:


The problem with bootcamps is they don’t focus on hard coding challenges, which teach data structures and algorithms. Those skills are the toughest parts of software job interviews, where people will ask you to code on a whiteboard with a marker. No computer or Internet. Just using your brain and standing in front of some engineers, talking about your code solution extemporaneously.

Bootcamps are good at teaching you limited skills about how to make specific kinds of websites, but they aren’t good at teaching how to deal with fundamental computer science (data structures and algorithms), which teaches you how to respond to completely new challenges you’ve never seen before. Doing problems from code challenge websites teaches you that. Also, post all your solutions on GitHub. Your GitHub will become your resume for software jobs.

Ooh, I just saw your blog: http://teacod.com/. Wonderful! Many of my Flatiron classmates also wrote blogs about their learning experiences. Nisha Batra wrote one of my favorite, detailed blogs about learning to code: http://nishacodes.tumblr.com/archive

This guy in LA, Daniel Greenfield and his wife Audrey Roy are Python/Django experts. They travel around the world giving talks on these subjects. They wrote the book “Two Scoops of Django”: http://twoscoopspress.org/products/two-scoops-of-django-1-6

Ask me if you have any technical questions.

How to learn to code – other people’s advice /3

I strongly believe in sharing the information and knowledge. This is why I started with series of posts: How to learn to code – other people’s advice /

As you already know I am posting some parts of the e-mail answers from some of the programmers that I have asked for advice when I started learning to code.

I do hope you will find useful information in this post:

Hi Aleksandar, I haven’t heard of The Firehose Project before: http://www.thefirehoseproject.com. Their website has no information on their curriculum and what languages/technologies they teach, however.

One of the people in my group is going through The Odin Project (http://www.theodinproject.com/courses?ref=home_b), which is free and may be something you’d like.

I’d gone through the first 2 courses in Tealeaf Academy before I did my live Flatiron School bootcamp: http://www.gotealeaf.com/

There are different sites that compare different web development bootcamps. Here are some online ones:




You have more and more choices now. Notice they have live bootcamps in Europe too.

If you pick an online bootcamp, you should also try to meet software developers in your city (Ljubljana), which you can find from sites like Meetup.com. Join Meetup.com and look around. You may be surprised from the groups you find near you! You need to meet people in person who would like to study together. Perhaps you could start your own Meetup group (which I did) to find study partners.

Let me know what you finally decide. There’s no right or wrong choice. 

Also, Udemy has been having lots of discounts on their online courses. Keep an eye out for future discounts.

Also, see what Jennifer Dewalt did. She was a San Francisco artist who taught herself to code by building 180 websites in 180 days. Crazy, but she achieved her goal of making 1 website per day. She taught herself everything—-HTML, CSS, JavaScript, Ruby, Rails, databases, etc. See her blog about each site, with her links to every site. She used this ambitious schedule to teach herself and practice as she went along.



Now she’s running her own restaurant review business, based on a site she created.

The important thing for you is to start coding every day. It’s like learning multiple foreign languages and new ways of thinking at once.

Create a GitHub account and learn to use Git to put all your code online for everyone to see. All software developers in the world have GitHub accounts, and that’s how we share code, learn from each other, and build on top of other people’s code. The best way to learn to code is to just start doing it, trying different code challenges, learning from reading others’ code, then rewriting your programs to improve them.

Start trying different code challenges from sites like https://projecteuler.net/http://www.codewars.com/abouthttps://www.hackerrank.com/https://www.interviewcake.com/https://code.google.com/codejamhttp://community.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index.

Code challenges are really tough and let you compete against some of the best programmers in the world. They can be more mathematical, but their questions are typical of what companies ask you in job interviews. Doing well on code challenges is what will help you get software jobs. They are tough but very intellectually stimulating and fun, if you like math and solving puzzles.


How to learn to code – other people’s advice /2


today I will post you part of another advice from a great programmer and person. If you are new to the world of the programming you may find this piece of text useful. I surely hope it will be useful.  I deleted some parts of the text that are not informative.

Here is the advice:

I hope you’re still going strong and haven’t lost confidence or interest! 

There are tons of good Git tutorials out there, but I have no idea how I’ve learned to use it. I’m sending you a presentation by one of my friends, I think it explains some of it quite well, and here’s another resource: https://dont-be-afraid-to-commit.readthedocs.org/en/latest/git/index.html  This is part of a great couse about committing to Django (open source project! :)) but you don’t really have to care about this kind of stuff just yet. These might not be the most beginner-friendly resources on earth but I can’t seem to remember better ones. If you totally don’t understand something, just ask me! 

Here’s a talk I saw about making your first contribution to open source. While it might be a bit early for you to think about that, it’s worth watching! 🙂https://www.youtube.com/watch?v=x78LukPdwiM

About conferences: the one I attended was EuroPython in July, that’s a pretty big one, but there are also some named PyCon, and you could check out DjangoCon as well. http://www.pycon.org/ 

Yes, I only learned Python for about 3 months, only then I started HTML and CSS, and web development in general. But I think it’s nice to know about these two early on 🙂 

One tip I wish I knew earlier when I was a beginner: I read you’re using Notepad which is cool, but you’ll need a proper text editor later, when you’re making more complex projects. Maybe it’s a good idea to get used to using one! You’ve probably met something like Sublime Text in the Django Girls tutorial. That’s the one I’m using too and it has so many awesome features! (I think I only know about like 10% of them:) ) For example, there’s syntax highlighting. The editor highlights different parts of the code with different colors so it’s easier to read and navigate. You can also use a multiple selection, like you had not one but ten or whatever cursors, so you can edit ten different occurrences of a word at the same time. So cool! Also, you can open whole projects with this, not just single files, and it’s much easier to work with this. 

You’ve probably heard already that “real developers use Linux”. It’s clearly an exaggeration, everyone uses what they like to use. But I switched to Linux from Windows about a year ago and I haven’t regretted it a bit. It’s so much easier learning to code in Linux, all the coder tools work so much better with it. Windows is famous for being hard to make it work if you’re a developer 🙂 So I’d suggest researching about Linux a bit if you feel like it. (If you’d want to install it but aren’t 100% sure, there’s a great solution: you can make your computer dual-boot – that mean you have two operating systems on it, and you decide which one to boot when you start your machine. That’s how I’m doing it, btu I’m hardly ever booting into Windows anymore. I suggest you give it a try!) 

How to learn to code – other people’s advice /1

It has been very busy period. I am in the middle of my residency application, completing a book and many other interesting projects. Months ago when I was gathering the information about how to learn to code I e-mailed few programmers.

I got this idea that it may be useful to share some of the advice with you. So here is the first advice:

Thanks for writing to me. I think it may be difficult to get paid for small programming projects while you build up your expertise. I recommend contributing to open source projects as a way to build up expertise quickly. Given your medical background, are there any programming or system administration jobs at universities or medical facilities?

Some resources that might be helpful:

A video tutorial on open source contribution

Training missions on common open source tools

Practice Python projects





Your bio :

2010 Won iGEM Grand price with Team Slovenia at MIT

2011 Graduated from Medical faculty in Ljubljana

2011 Learned to code

2012 Cofounded my startup (Mediately)

2012 Won second place at Health 2.0 hackathon

2013 Raised seed investment

Nejc, when you started to code ?

It was after I graduated from Medical faculty and had two months of free time before starting my residency.

You graduated from the Medical faculty, did it somehow help you being better programmer ?

Maybe the endurance to read a lot of thick books :). Also, I came across the idea for my startup while doing clinical work which gave me motivation to start coding.

What made you start ? What was the trigger ?

During my studies I always felt that drug information wasn’t easily accessible to students and doctors. The information was either in the books or was only partially available on the web page of Slovenian Health insurance. For quite some time I wanted to create a solution and learning to code enabled me to do that.
What resources did you use and how you keep up to date within rapidly growing field as programming is ?
I watched several video tutorials from lynda.com to get me started . Then I started to code my project and used stackoverflow and googling for every problem I ran into. And there were a lot :). Then I started to read programming books which gave me more in-depth knowledge. I also completed several online courses from Corsera.

Reading hackernews and weekly summaries from my field keep me up to date with what’s going on.
Do you code only for hobby or is this your job ?

I used to work as radiology resident and coded in the afternoons and weekends. Because I couldn’t give my 100% on both jobs I decided to work only on my startup.

How did you get your first programming job ?
I cofounded Mediately where I’m the lead Android engineer.

What is your favourite programming language ? Which one do you like to work with the most ?

My love at first sight was Ruby but now I work mostly in Java and once you get a grip on it it’s quite nice.

Would you encourage people graduating from non-tech colleges to learn to code ? Criticism about the idea (hype) ‘let’s all learn to code’ is not to so rare among some people who are more experts in the field. What is your thought about that ?

There is a lot of talk about how coding is the new literacy. But literacy helps people to communicate and I don’t believe that forcing everyone to code will improve how people communicate even through computers. However,coding is a wonderful way to get to know how programs, computers and internet work.

What do you think is the best part of being a coder ? Can you think about disadvantages as well ?

The best thing is that you can start working on your idea 5 minutes after you have got it in the shower. But I wouldn’t want to work at the IT department of a big conservative company.

What was the most interesting project you worked on ? People usually give me advices that the best way to start learning programming is to start working on some real personal projects ? Did you had your own ‘starting projects’ as well ?

By far the most interesting project is my startup. Being able to work on your idea and watch it grow is awesome. I would agree that having a project is crucial. I tried two times before to learn to code but because I had no project to work on I failed.

What are you up to today ?

Trying to grow my startup into a business.

Do you have any advice for newbie programmers ?
Choose a language (I suggest Ruby), complete a crash course online,choose a project that you’re passionate about and start coding.

Social media contacts:

Linked in: https://www.linkedin.com/in/nejctomsic

Mediately: http://www.mediately.co


I keep going with the Coursera course on Python by dr. Charles Severance. Class is really well constructed and I would warmly recommend it to all programming newbies.

Yesterday It took me quite a lot of time to solve the exercise. I experienced two things:

1. It is important to pay attention to details. I knew that but obviously did not remember lesson well as I was furiously looking for the solution while it was really obvious and would have appear to me much earlier if I would have been more precise. Once again: pay attention to details. 

2. The second experience was a joy of making my longest program so far. For an experienced programmer this piece of code will look very easy but for me it was the top of the mountain. If you have write the right solution, the right code either for given exercise or some problem of your own, you will know what I am talking about.

So here is the exercise:

Write a program that repeatedly prompts a user for integer numbers until the user enters ‘done’. Once ‘done’ is entered, print out the largest and smallest of the numbers. If the user enters anything other than a valid number catch it with a try/except and put out an appropriate message and ignore the number. Enter the numbers from the book for problem 5.1 and Match the desired output as shown. 

This is my first solution which I was so sure it was right but it was not:

largest = None
smallest = None
while True:
num = raw_input(“Enter a number: “)
if num == “done” : break

num = int(num)
print “Invalid input”

if largest is None or num > largest:
largest = num

if smallest is None or num < smallest:
smallest = num

print “Maximum is”, largest
print “Minimum is”, smallest

And this is the right solution. Do you notice the difference. Run the code if you are not sure.

largest = None
smallest = None
while True:
num = raw_input(“Enter a number: “)
if num == “done” : break

num = int(num)
print “Invalid input”

if largest is None or num > largest:
largest = num

if smallest is None or num < smallest:
smallest = num

print “Maximum is”, largest
print “Minimum is”, smallest


P.S. I apologize for writing code without proper identation. If you know how could I write nicer lines of code here in wordpress please let me know. 


I was recently asked on Quora this question: What’s the worst way to learn programming?

Even though I am not a programmer but rather someone who is learning Python for fun, I did dare to answer the question. My response was:

Starting to many online courses at once and spending to much time on planning what and from where to learn.

I responded because I went through the same experience. You can get trapped into the false perception of doing progress, while everything that you are actually doing is planning and checking next cool learning site for coding. Codecakes, Udacity, Udemy, Teaching Tree, Learn Python the Hard Way, Codecademy, Code School… To name just a few. Stop planning to much, to precisely. You can easily spend too much time on checking these resources but I do believe this is waste of time.

By my opinion, what you should do is to determine the maximum amount of time that you are willing to spend on planning. Once you ran out of the time you must start learning and following one or two resources until you complete the lessons. Than you should move on, otherwise the learning process is confusing and unefficient.

How much time did you take for making your learning plan ?


Project – Free Magazine

When I was strating with Python learning my main question was: What is the most efficient way to learn to code. With few exceptions, the answer was: Try to solve your own problem or Make your own little project. 

Since then I accumulated almost uncountable numbers of ideas, mostly in the mHealth or digital health field. On the other hand, I was also thinking about things that are not related to medicine. One idea that occured months ago but still waiting its realization was a result of my passion for reading.

Reading is one of my favourite free time activites. I enjoy buying books and expanding my private library. I am also subscriber to few magazines. After reading I put them on a bookshelf but I believe that somebody else could take advantage of reading them. I will rarely take one magazine for a second or third time. I usually take out what I want to remember and rest of the text is forgotten. This is why I would like to create a web page for free sharing of print magazines. For instance, it was quite a struggle to become a Forbes subscriber as I am from Europe. Forbes is one example of very inspirational and motivational magazine that boost your enthusiasm no matter the field you are working in. This is why I believe other can have benefit from reading it.

As I actually do not know how to code, my ‘web-page’ will be probably very very simple. With the title, pictures of cover magazines that I am willing to send anybody who will demanded them first for free and with ugly url address as it will be hosted on dropbox.

So expect the announcement of web page for sharing used print magazines between readers.


Starting to learn to code was a good idea

I admit, tech-entrepreneur hype took over me when I was in my last year of medical school. I do not remember how I started to read about entrepreneurship, it just occured. I am Forbes, FastCompany, Entrepreneur… magazine subscriber and it is being very inspirational reading through some of the success stories in mentioned articles. Aha, I remember now. it was when I read this article by Vinod Khosla: Technology will replace 80 % of what doctors do. 

As a medical student I was not keen about the idea. After all I spend long years studying medicine and now computers will take over our position. I remember being so absorbed in studies that I barely had time to think or do anything else. I do not regret it but I do think that having broader picture of how world function is not bad idea at all. Let’s go back to the story. So after reading this Fortune article I started to read about tech innovations and this soon lead me to the sillicon valley start ups. Do not be surprised, but for an average med student as myself, this revelation was quite incredible. So, next discovery was that developers are gods. If you want to start a start-up it must be in the tech field and if it is in the tech field you must know how to code.

Before I started to code I made a lot of brainstorming about different problems that could be solved in the field of healthcare. I got many of them and after not so much time I realized that all were already ‘taken’. I said to myself that the best thing would be to learn how to code so I will be able to create something. So I started, at the moment I had some free time, it was just after graduation so I went through some courses and read few books. Now after few months I am still not able to write a decent program. In addition, working as MD does not give me a lot of time for my coding education. But still it was great experience. It gave me valuable insights. Even if I will not be able to write the simplest program, learning to code was valuable lesson (and still is):

1. Learning to code helped me to meet a lot of people from the fields such as entrepreneurship, computer science, programming. It was great learning how they work and think. I think every physician who has enthusiasm for tech, computers, entrepreneurship should met a lot of people from these fields.

2. Learning to code helped me to learn that programming is not that cool as it may be presented in media. This experience, made me reevaluate the privilege that I have being physician. One thing we will always need is a knowledge how to help people feel better. Working as MD can be a good way to do that. Combining that with technology can be even more potent.

3. I learned some basics about computers and can be calm in not believing Vinod Khosla words. At least not in near future as he is predicting.

So if you are wondering whether or not you should started learn coding I think it will be rewarding and valuable experience. Even if you will not turn pro developer.