Answer on @Quora by Dan Munro to Will today’s medical students make inferior doctors because they Google medical inf… http://qr.ae/7JXxWH
Ideas are a Dime a Dozen. People Who Implement Them are Priceless. I experienced this quote and I do agree with the statement. Approximately 10 months ago I decided to create an idea each day. It does not matter what kind of the idea, the main rule was that it needs to be innovative. I wanted this to become my daily routine and after getting around 250-260 of them I realized that I cannot continue with my other activities until I get at least one idea per day. At the moment I am at the number 330 and the lesson I learnt is very useful.
When we find a good quote, or hear a good point from smart people our inner voice agree with the content. However, there is a difference between knowing something and understanding something. In my example, I agree with everybody who claim that ideas are cheap and that everybody can have them and that what really matters is action. After getting more than 300 ideas I realized that everybody can be creative and that everybody can take advantage from its imagination and find creative solutions for all kinds of problems. I can assure you, if it works for me it will work for you. But again, what really matters is taking action. Getting an idea is really just the first steep.
What was the main drive for the development of this creative habit ? I get bored very easily and I do need constant challenges to keep me in a good mood otherwise I get this uncomfortable feeling of missing something. But it is not only the Fear of Missing out syndrome. I strongly believe that we need to create new things. I find this as a very strong need – to make an impact, to make a positive impact. This is why I started brainstorming all kinds of ideas: healthcare startup solutions, titles for my columns, blog topics, interview questions for my book and more. At the beginning I would sometime spend 20-25 minutes to get only one idea. Now I find it much easier as I developed this good habit of constant search for creative solutions. Sometimes I would get two, three ideas while walking, driving and would then write them down in my book for ideas. It really becomes a way of thinking.
Another valuable experience is understanding the limits of the time. You simply cannot put all your ideas into the life. I have not calculated the percentage of the ideas that I start working on them and implement them into the reality but I can say, that it is only around 5 to 10 % of the ideas that are not only the ideas on the paper but become reality. I try to make regular check up and also strikethrough some ideas that after some time I do not find good any more. This is also a good lesson. Not all ideas that seem to be good initially are actually worth working on.
Another important lesson can be described by this quote by Sir Richard Branson: Business opportunities are like buses, there’s always another one coming.
I am annoyed by people who focus on questions about idea protection, patent issues etc. before even starting to work on the project. When you become a machine for ideas the level of self-confidence increases and you realize that there will always be another idea, another opportunity which can spare you from protect-my-idea-at-all-costs behaviour.
I don’t care that they stole my idea . I care that they don’t have any of their own — Nikola Tesla
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).
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.
Not so long ago I created amateur webpage project for free sharing of 2nd hand print magazines. I love to read but I do not want to accumulate all these magazines. This is why I am willing to send them over.
I have added Forbes, Fast Company, Wired and Harvard Business Review.
Link where you can find magazines is here.
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.
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/about, https://www.hackerrank.com/, https://www.interviewcake.com/, https://code.google.com/codejam, http://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.
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!)
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:
INTERVIEW WITH NEJC TOMSIC – SELF-TAUGH PROGRAMMER, MD and MEDIATELY COFOUNDER
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
It is my big pleasure to announce the next interview in my ‘conversation series’.
This time you will read conversation with programmer who graduated from the medical school and is self-taught programmer.
I will post the interview later in the day.