Giter Club home page Giter Club logo

Comments (6)

gaearon avatar gaearon commented on May 6, 2024 20

I got distracted from programming by the end of the high school, as I had no tangible projects, and lots of work to do for the exams. Being a teenager I was also more into going out with friends, so I stopped for a while.

I started studying at a university but that didn't work out: #47. By the end of the first college year I was doing free-lance work almost for free to gain some credibility on a notable Russian free-lance resource. That's where I learned it's important to make an impression, have a good userpic, show your projects in a careful way, have good copy on the page, etc. I didn't make much money there but it was a great learning experience. One person proposed me to write a program for free-lance developers (yes it was before everything was on the internet) for free, but which would link to our profiles. So I did. The program was very popular and people are still creating screencasts about it, and I had to close down the profile on that website because I was still getting free-lance offers long after I stopped free-lancing.

There was a particular outsourcing company where I wanted to work because somebody told me it's nice there, and they were doing .NET development (which I knew well). As it so happened I saw that their VP was giving a talk at some small local conference, so I went there, and started asking him questions after the talk. He offered me to go through the interview process, and I was hired at my first job.

This was when I started neglecting the university, for programming for money was much more fun than waiting for the programming courses to even start (see #47). I worked at that outsourcing company for two years. However most of the projects were related to enterprise software, which was bloated, legacy, and not very fun to work on. Here's a fun anecdote. I went for a one-month trip to help the client in New York fix issues onsite. (Sounds impressive but the reality is that they had horrible software built on top of SharePoint that nobody understood how to modify, and the company that wrote it no longer supported it, and my job was untangling the horrible spaghetti.) I started work towards fixing the issues by introducing logging into all parts of the system, and using it to figure out how the hell it was supposed to work. But they were business people! It was customary to show up at 9am, or you'd be frowned upon. I lived with it for a month, but at the last day when I was supposed to present my work to the local bosses, I overslept! It wasn't nice, as I pretty much embarrassed myself and my company, and personally I decided the world of outsourcing for enterprises isn't for me.

I quit the job, and for six months I asked my parents to pay for my rent, using this as an opportunity to learn the web stuff. I joined a local group where people would come to learn to build web projects but nobody really taught anyone—people were supposed to go through the tutorials (like Django Tutorial on its website) themselves. I learned a ton there, including Git, some JavaScript, some CSS, some Python and Django. Later I tried to create a software-as-a-service myself, including writing software and making sales calls. I think it made me something like $500 over three months of effort, but it was a great learning experience.

After that, I got a job at a startup, and things moved very quickly. I moved to Moscow, where it was based, and lived in the flat with the folks working on it with me. It was two years of concentrated effort, and I learned iOS development (via Xamarin on C#) during the first year when we were working on an iPad app, and I learned proper JavaScript, Backbone, and later React, during the second year when we worked on the web version. This was when I started getting back into the open source, and some of the stuff I released became popular.

from ama.

gaearon avatar gaearon commented on May 6, 2024 13

Around the age of 12.

I didn't have a computer before I was 11, so I had no ZX Spectrum or that kind of thing—in fact even now I have no idea what that is.

When I was 9, I went to a summer camp where they'd allow us to play computers for an hour a day. They were running DOS and had games like Doom. I noticed that several of these computers had a Windows 3.1 launcher so while most people were messing with games, I would launch Windows and mess with Paintbrush. It felt cool.

When I was 10, I went to the same camp, and now all computers were running Windows 1998. One of the new “games” was an Excel file that contained “Who wants to be a millionaire” quiz game written as a giant VBA macro. I didn't understand it, but it was my first exposure to macros.

When I was 11, our family bought a computer, and I burned its motherboard the first day. I have no idea how that happened. It must have been faulty. When I launched it early in the morning while everybody was sleeping, it loaded Windows 2000. I opened Win+R and typed "cmd" to launch terminal. I didn't even know what to do with it. Then Windows said "The terminal encountered an error and must be closed. [Report Error]". I freaked out and thought it's going to be "closed" forever so in panic I just hit "reset". After that, the computer wouldn't boot. I don't remember how long it took to repair it, but I felt like half a year passed before we got it back and I started messing with it.

My favorite program was PowerPoint. (Of course, everything was pirated. We couldn't afford to spend $100 on software that cost $2 in the CD shop.) I used to create PowerPoint presentations with OLE objects, or presentations triggering animations one after another. Eventually I discovered "macros" and figured out that I can record a bunch of actions, see the code, change the code, and they'd behave differently.

Next few years I'd be reading every book about Visual Basic I could find. My grandma's routine of a weekend with me was going to a bookshop, waiting for me to pick the thickest book about Visual Basic, and then going to share a pizza with me while I was consumed reading.

My first real program was a quiz. You'd press radio buttons and it would calculate your score. It had a Windows GUI.

Later I read Visual Basic sucks, and there was this .NET thing which was totally different, so I decided to try C#. Curly braces freaked me out for several months and I thought I'd never understand them. I tried to learn C or C++ but I had no success getting anything to run.

By the time I was 14, I moderated a section on VB .NET on a local online programming forum. I didn't really write any useful software for a long, long time. I didn't know what to write, so I just helped people out on the forum.

I had a long-running project: my stepfather asked me to write a program to catalogue photoshoot details. I learned about databases and used DAO with Access. Later I rewrote it to use ADO .NET. My favorite part was buying pirate CDs with ActiveX component like “Office 2003-style gradient toolbars” and integrating those into the app. By the way, I never shipped the app itself, I just kept tweaking its GUI.

Around that time I started picking up good habits: I read most of Joel on Software and other classics like Code Complete, Refactoring, etc. I also had some exposure to functional programming by messing with Nemerle language.

I got into open source when I was excited about Mono project (an open-source rewrite of .NET), so I wanted to contribute. That's when I participated in Google's high school open source contest and shared the grand prize with 9 other folks. The reason I won is because there was very little competition in Mono project—high school folks usually knew C, and C# wasn't cool.

These are the important milestones in how I started. Wouldn't have happened without:

  • easy access to pirated expensive software like Visual Studio (they didn't have Express versions back then)
  • tons of free time made by neglecting school homework and copying it
  • advent of smartphones so I'd spend most of school hiding a phone in my hand, reading programming forums
  • visually encouraging and easy to start environment of Visual Basic

from ama.

prakhar1989 avatar prakhar1989 commented on May 6, 2024

What a fantastic answer! My favorite part is this -

Then Windows said "The terminal encountered an error and must be closed. [Report Error]". I freaked out and thought it's going to be "closed" forever so in panic I just hit "reset". After that, the computer wouldn't boot. I don't remember how long it took to repair it, but I felt like half a year passed before we got it back and I started messing with it.

I can totally relate to this and I'm still kinda afraid to open cmd on Windows now 😀

from ama.

eguneys avatar eguneys commented on May 6, 2024

Could you extend your answer up to today please.

from ama.

prakhar1989 avatar prakhar1989 commented on May 6, 2024

Great story Dan. Thank you for sharing!

from ama.

manters2000 avatar manters2000 commented on May 6, 2024

Nice read, mate! Very inspiring :)

from ama.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.