Tag Archives: Django

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.

Advertisements

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

DAY_11_Django

Zeigarnik effect is very powerful psychological phenomena. In brief, this effect explains our tendency to finish work that we have started. At least in the case of self-teaching programming this can be positive. When I started to learn to code I found numerous resources I could use. Video tutorials, MOOCs, online books, forums, remote online courses. Frustrating, really. Too many choices has paralyzing effect on us. This is explained in the book The Paradox of Choice. Because I was aware of this theory, my initial plan was to stick with the one course at the time and after finishing it, then only I would move forward and learn elsewhere. You already know what was my initial plan, I explained it in one of the first posts. Two days ago, I completed all two courses, finished the book and codecademy (Python) as well. So again, my advice to all self-teaching programmers is: first find a course or a book or MOOC that you think is of good quality and follow it to the end. You will learn about many online schools, it is good to check these and maybe save them for later. Just do not jump. Make strong foundations first!

After I finished my beginning learning plan my first question was “What is the next best step ? “. All right, I learned some basics in nine days, but I am far from being able to make something useful with my ‘coding-skill’. I decided to ask people on the local forum. After explaining them what I have learned so far they suggested me to check Django Girsl Tutorial. I followed the advice and started with tutorial. Not to forget. For all of you who have not heard about Django…. This is a Python Web framework that enables rapid web development and clean design. It’s free and open source.

I finished tutorial in 2 days. Even though this does not make me Django expert I think it is worth learning from it. There are few advantages I can think of. Firstly, it enables you to practice writing in command prompt (for all beginners who are used to type in word, this is good training). Secondly, you will learn all kinds of keyboard shortcuts (if you will look after them). This knowledge will help you to type faster and be more efficient. Thirdly, you will read about other tools used in web development and programming and that is a great way to expand your computer vocabulary. And finally, you can get in contact with great people who are more experienced and can be thus great source of priceless advice and tips.

If you will decide to learn from the tutorial I strongly recommend you to join the discussion here. It helped me to move forward after I got stuck in 12th chapter.

DAY_9_piece_of_advice

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.