📜 ⬆️ ⬇️

Program from scratch. Now is the right time to start


(Illustrations to the article “ Programming is the second literacy ” by AP Ershov )

Steve Jobs did not write a single line of code, Bill Gates wrote. Paul Graham is a first-class programmer, Peter Thiel is a lawyer by training, co-founder of PayPal and owner of Palantir (did he write anything?), And Ilon Musk wrote his game as a child and successfully sold it.

Nikita truesnow from #tceh told me that in the course “Get into Ruby” they will teach anyone to program, even from scratch. I asked him: “Can you cope with the humanities?” And we wondered if there were any cases when “humanist” learned a programming language?
')
Immediately a homeless programmer came to mind, but after success with his application, he chose to remain a “Zen monk”. Are there any more examples? An inspiring example that anyone can learn coding is a blind programmer. When I read the article on Habré "Looking at the code with my eyes closed," I realized that there are no barriers other than my own excuses.

And I have for you three stories from my life. Just three stories.

Story One - Lamer


The word "lamer" I read in "Computer". The definition was given there: “Lamer is not an illiterate person who does not know how (how could I put it more softly?) To program.” Inspired by the truth, I ran and told classmates to my friends, but they preferred to play football instead of mastering their superpowers. It's funny that then they all earned money by programming, but I didn't. A week later, I enrolled in the regional station of young technicians (KSYUT), where there was a programming circle. There for beginners were given qbasic. And the gods have fallen on C.

So somehow one of the "gods" called me to the monitor and asked: "So can you?". And he showed the program, which was waiting for the user to enter any character in the command line, and then turn it 90 degrees. I was stunned.

Probably, it hooked me so much that I decided - no matter what, to learn everything I could and become the coolest programmer. The charge was enough for years. I forgot this case, several years passed, and, recalling it, I wrote no more than a dozen lines on basicʻe for 20 minutes. The program worked perfectly.

Conclusion. Personal relationships with the Padawans are very important. Perhaps your unpretentious program will determine the fate of a person and affect the choice of life path.

The second story - the first cipher


The idea came suddenly. I came so that I could not sleep and sat down to code. From the ciphers, then I knew only about dancing little men from Sherlock Holmes (and this is class 8 or 9, he was engaged in programming for six months or a year). I wanted to write a cipher so that it could not be so easy to open it with a simple analysis.

The idea was as follows: we assign to each letter of the Russian alphabet an array of 5 characters in the form of letters of the Russian and English languages, special characters. When encrypting, we randomly choose one of them. It turned out "extended" simple replacement. It is now clear to me how to break it, but then for me there was an exorbitant height. In 3-4 years I will arrive on computer safety.

Conclusion. Solving interesting problems is awesome. But it’s much cooler to invent and find tasks yourself.

The third story - the triumph of BASIC


I have been doing programming for 2 years. And then in the school appeared ... computer science. For some reason I was sent to a weak group. As I found out later, my face did not like the teacher and she felt that I was stupid. My friends broke into the office of the director and said that I had won a prize at the regional programming Olympiad. The disassembly began, but I didn’t care so much that I stayed in a weak group, where they taught me to enter numbers into Excel. For the first week I passed the entire program and calmly went to play Diablo 2 in a computer club.

And at the Olympics was a funny case. Allowed languages ​​are C, Pascal, and I was a hardened beysichnik. Unscrew. The task was taken in the form of exe'shnik, and I jumped around and found a BASIC, which forges exe'shniki. Programs passed tests, and the tests themselves were taken on a server. One task was purely computational. The coordinates of the centers and the radii of the two circles were given. It was necessary to produce a mutual arrangement of circles in text form: intersect, touch, one to another, coincide, and others.

It was laziness to mess around with formulas, and recently I was just dealing with graphics. I solved the problem graphically, drew a circle in one color, and then “scanned” pixel by pixel by pixel along the second circle, do I stick into the already colored pixel. There was a great fear that the program would not be able to work on a server without a monitor, but everything worked out - 10 tests out of 10. There was a high point on the task analysis. Fifty people solved the problem one-on-one as an author, what was their surprise when I told my method.

Conclusion. School is evil. The result is awesome. Thinking outside the box is cool. There is always a workaround.

Why do adults need to learn programming?


I have three answers to this question. They depend on the planning horizon:

- A goal for 1 week or month is a challenge. It's like running a marathon or getting on Elbrus, checking if the brains are dry, getting out of the comfort zone.

- The goal for a year or two is a loot. During this time, you can learn to create value and work remotely. Or teach others. Many people want to learn how to program.
proof
image

I searched September 8 myself:


in Russian is 1000 times less:


- The goal for 5-10 years - the development as a whole. First, you improve your thinking. Secondly, you will make an invaluable gift to children. They will get several years of odds in learning programming and you will have many wonderful moments of co-writing programs. For complete happiness, it will remain to learn how to play computer games, but you most likely already know how to do this.

How to learn to program


There is a broken picture of this:
image

For some reason, everyone immediately begins to advise Knut, Kormen and others, but an unprepared person will be able to master only the preface. If you have problems with self-esteem, take a children's book and write a game.

If you are ready to start in an adult, then there are plenty of resources for self-study. From Coursera ( one , two ) to all% name of% academy (codeacademy, htmlacademy, etc.)

If the intentions are very serious, I can advise the course "Get into Ruby . "

Firstly , there is a live teacher with a good background in development. Vitaly Kurennov, 6 years old, has been writing in Ruby and has been teaching this skill to everyone for more than a year, he has worked on Ruby projects for Nokia and Avaya.
Secondly , there is a group of like-minded people, working side by side with whom, you have many times increased the chances of reaching the victorious end and mastering programming to the level when it starts to bring profit.



- Nikita, why Ruby?
- It's simple, we found a very good teacher.

About Ruby
You can try to take the first steps right now, it will take only 5-10 minutes.


I found a gorgeous resource with gamification and immediately from tryruby.org browser
For 5 minutes, we perform several tasks, get an achievement and go to the next level.

image
Do you want a zombie? railsforZOMBIES.org

About Lisp
“However, I don’t think I can convince anyone (over 25) to learn Lisp.” Paul Graham, “Defeating Mediocrity”

Having read Graham , learn Lisp.

;; Welcome to L(λ)THW! (let ((llthw '(learn lisp the hard way))) (format t "~{~@(~A~)~^ ~}, because ~{~A~^ ~} is easier!" llthw (cddr llthw))) ;; Common Lisp: Powerful, Expressive, Programmable, General Purpose, Multi-Paradigm. 



Found for yourself a convenient browser tutorial Learn Lisp The Hard Way

“During the years that I worked at Viaweb, I read a lot of job ads. About every month a new competitor appeared. The first thing I did after checking to see if an online demonstration of the work of their program was available was watching the list of their vacancies. After a couple of years, I learned to distinguish dangerous from non-dangerous competitors. The more the mainstream IT rendered the description of the required candidates, the less dangerous the company was. The safest were those who needed Oracle specialists. About these should not have to worry. We were also at ease if C ++ or Java developers were required.

If Perl or Python programmers were required, it was already slightly frightening - it meant that the real hackers ran the company or at least its technical part. If I had ever seen an advertisement for hiring Lisp hackers, I would have been seriously worried. ” Paul Graham, “ Winning Mediocrity ”


Another couple of tips




PS
More interesting articles with Habr on the topic of being / not being a programmer and how to take steps towards mastery





Pps
Alan Kay shares a bright idea about ideas. Architecture, mathematics, learning, programming and much more interesting.

Source: https://habr.com/ru/post/265981/


All Articles