Tag Archives: Ruby

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






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


The purpose of this post is to give bon conseil to all of you who fell into the world of programming with zero experience in computer science. I spend last week and two days learning Python. It is indeed lonely experience, often frustrating and rewarding at the same time. When this bug caught me I could not tell the difference between Ruby and Ruby on Rails or Python and Django. I tought HTML is just another programming language and that programming is something I missed to learn as I am 25 and people much younger than me already programmed great software and other magic things you can do with coding. By the way, I love this word magic. It is often used in programming tutorials. It is great. You start thinking about the code skill as wizard wand. And it is a wizard wand. However, it takes hard work to learn to use it.

It seems as the most common reason that discourage people from even starting to learn coding is thinking about programming as an extremely complicated craft that only few are capable of mastering. Yes, it is true you will not be able to build software after reading two  how-to-learn-coding-in-one-week. There are no shortcuts. It is somewhere in the middle: not that hard as you think and not that easy as some books and webpages are claiming.  Commitment, practice and a good plan can make magic 😉 Do not forget it.

For a beginner it is difficult to start because there are so many articles and tutorials on the web. I believe that thinking too much about which programming language to start with is nonsense. I think Just do it is great mantra. After talk with few people I quickly learned that for a beginner Python seems to be good decision. So I picked Python. But again, this is not the only option. You can start with other language as well.

So 9 days ago I started learning to code with two courses on Udemy, codecademy Python course and a book. At the same time I read articles about self-taught programmers and tried to talked to as many as possible programmers. I also read questions on Quora, which is also very useful source of information. In nine days I constructed scheme for my further learning. I defined steps and tools that I will need to learn in order to become coder. In order to programming becomes my job and work and hobby. Here is my compact advice :

  1. I think that web-development is where the most opportunities are. So educating yourself for a web developer would be reasonable start in the programming world. In addition, it is easier to start learn programming web apps than some rocket software. To become Front- End web developer you will have to learn more than only one programming language.
  2. HTML is the standard markup langugage used to create Web pages. 
  3. CSS is a style sheet language used for describing the look and formating of a document written in a markup language. 
  4. JavaScript is a dynamic programming language.

With knowing HTML, CSS and JavaScript you will have great foundation to build on. These are MUST for web developers. My self-teaching-programming-journey was started by learning Python. However, with knowledge I got in last days I will move to HTML & CSS and JavaScript. After No. 4 is accomplished I recommend you to learn “back end” programming language. 

5. Python is good option for a beginner. Keep in mind that there are also other programming languages that people start with (Ruby, PHP…) so it does not need to be Python.

6. Then comes Django.This is web application framework.  If you are learning Ruby, Ruby on Rails for instance will be your web framework of choice. There are more programming language – web framework pairs. Drupal is a web framework for PHP and so on.

These 6 points are my plan and not a general rule. You might have been following different path which is as good as mine. I believe that important thing is to start and to learn by doing. You will hear about my new experiences soon.