I have more than 300 ideas

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

 

 

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

http://prework.flatironschool.com/web-development/

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:

http://www.theatlantic.com/technology/archive/2011/06/how-i-failed-failed-and-finally-succeeded-at-learning-how-to-code/239855/?single_page=true

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.

Few more magazines

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. 

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:

http://bootcamper.io/t/type/online

http://www.skilledup.com/articles/online-alternatives-coding-bootcamp/

http://www.bootcamps.in/

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.

http://blog.jenniferdewalt.com/

http://jenniferdewalt.com/

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

Hello,

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