Query

A couple of people have mentioned on here that they would hire me if I learned to code. I’m looking at my options right now, so I have a couple of questions for anyone who considers that a real possibility.

1. What particular skills do you need? You should assume that, if I decide to do this, I will spend approximately six months studying seriously. So remember to divide that time up appropriately, i.e. a list of six acronyms and buzzwords means each one only gets one month. (I’m starting from scratch but the idea of using a compiler is not new to me- I took a couple of courses back in 2007.)

(Edit: It would be even more helpful if you were to direct me to the training materials you want me to absorb. Please assume that I have access to a good library, but only about $100 to spend.)

2. How serious are you? I don’t have transportation and possibly in the near-future I will be homeless. If I’m going to spend six months learning this as a serious skill, then jump on a Greyhound to God-knows-where with a duffel bag, I need a reasonable degree of certainty that this risk is going to pay off.

3. What are you paying? What is the cost of living index in your area? Is there somewhere I can shack up for the first two months? Would I die if I were living in a tent? (I’m slightly cold-adapted but I’m not Tex.)

Advertisements

About Aeoli Pera

Maybe do this later?
This entry was posted in Uncategorized. Bookmark the permalink.

42 Responses to Query

  1. Mycroft Jones says:

    If they are serious about hiring you, I’ll tutor you for free.

    • Aeoli Pera says:

      Thank you. Nothing job-wise so far, but I’m starting to learn Javascript anyway.

      • Mycroft Jones says:

        That is a good start. JavaScript is the new BASIC. Then PHP after that. I started with C/C++ and learned the whole suite of Unix technologies, and it hasn’t helped me a bit.

  2. Rime says:

    I will be watching this post closely, as I too would like to know a reliable method of learning programming/code.

    • Rime says:

      Rooting for you Aeoli!

      • Mycroft Jones says:

        Learning to code well in general, takes years; but if there is a specific language and programming environment, you can often get up to speed within 6 months, if you already have some good mathematical background (like Aeoli does)

      • Mycroft Jones says:

        And having a mentor can speed things up tremendously. Self-learning is slow, because of all the undocumented bugs and glitches and misleading, incomplete, or out of date documentation.

      • Aeoli Pera says:

        Thank you, likewise. I’m not the only one out there with problems, and I presume everybody else is just more ashamed to work it all out online.

    • Aeoli Pera says:

      From what I can tell, it’s a gamut of small applications rather than big ideas (of which there appear to be very few). Imagine that learning “HTML” is like learning 100 different 3-minute songs for the piano. Lots of little quirks and techniques to work through slowly and tediously, but also lots of similarities.

      • Aeoli Pera says:

        So in short, it’s almost exactly the same as learning music. Not very difficult, but very time and attention-consuming, so you’d better take great interest in the process itself or it’s going to be hell and take forever.

      • Mycroft Jones says:

        Yes, I’ve been telling people there are about a dozen big ideas in computer programming, and once you know them, NOTHING is really new; you can pick it all up pretty quick.

      • Edenist whackjob says:

        Yes learn basic algorithms (quick sort, binary sort, recursive search) and data structures (arrays, linked lists, trees, graphs, hash maps).

  3. I’ll attempt to answer 1:

    1) I think this is an appropriate stack, in order of career significance:
    -Javascript
    -AngularJS (the main Javascript framework these days)
    -HTML/CSS
    -Jquery
    -One backend language (for ease, try NodeJS which is Javascript on the server, otherwise go with PHP or Java)
    -Linux

    If you had all that up to a decent level, you’d easily get a freelance job.

    If you were aiming at a junior dev, no need to be all that good. They expect you to learn on the job.

    I’m telling you, a lot of people I have seen hired are not exactly brilliant. Me, I don’t always know the buzzwords I’m engaged for either. It all comes down to general problem-solving capacity, being able to quickly build a mental model of what the parts do/are/relate, and having a lot of mental energy to grind through. Also, being a bit OCD so an aesthetic sense will develop which unlocks more senior architect roles.

    • Edenist whackjob says:

      Specific tip: the book/pdf Javascript: the good parts, by Crockford.

    • Aeoli Pera says:

      Thank you, that is exactly the sort of answer I was looking for.

      “If you were aiming at a junior dev, no need to be all that good. They expect you to learn on the job.”

      What I hear around here is that these jobs tend to be filled by H1-B immigrants.

      • Mycroft Jones says:

        Yeah, in my area, can’t seem to get into the junior/mid-level jobs. It is either senior level, or go home. After the stuff I’ve been through I can’t handle top level anymore, but a nice mid-level job would be a piece of cake. Lot of affirmative action hires, and also overconfident young guys from the middle class crowding out working class programmers.

  4. Edenist whackjob says:

    Another thing: I almost never encounter anyone with serious math skill. The ones who have it can do funky stuff like Machine Learning which is high in demand.

    In fact, mathematicians turned coders often get away with being terrible at the latter.

    • Edenist whackjob says:

      Random idea: the blogger Xsplat has often offered people to come live with him in Indonesia and work in his business. Try reaching out to him. He’s often mentioned how hard it is to find smart and hard working people. Seems you fit the bill.

        • Aeoli Pera says:

          Indonesia is out of my reckoning. I don’t even know off the top of my head what languages they speak there.

          Great song by August Burns Red though.

          This Xsplat guy appears to have some hard-earned wisdom, but that’s not a 100% guarantee we’d get along. It sounds like he’s probably a magical thinker, like most entrepreneurs. So when push comes to shove, his go-to move is to crack down on the creative type for not being magic. Then the stick comes out because he’s frustrated and figuring maybe more stress will make the creativity come out, when really it’s the opposite.

    • Aeoli Pera says:

      I have only mediocre math talent, but I did pick up some pretty good skills from the 4-year grind.

  5. Koanic says:

    As with any employer, one should speak with at least one prior employee one trusts as honest, disinterested and similar before contemplating working there.

  6. Jdc says:

    I would suggest avoiding PHP and Java and looking into Node.js, CSS3/4 and learning proper semantic HTML5. You can get a job working purely as a front end developer and those skills are highly in demand. If you do start using javascript I would suggest learning the new ES6 standard which is basically object orientated.

    Other languages worth learning are Google Go and Rust. They’re the new tech really, Golang is really good for asynchronous single page applications as it supports websockets. Javascript allows the creation of isomorphic apps which mean the javascript for the front end compiles on the back end. If you do go the javascript route look into a javascript package manager and use a transpiler such as Babel for ES6 syntax which is not fully implemented yet in modern browsers. Browsers tend to update incrementally in terms of features and are basically a moving target.

    Also look into other tools such as Ansible for deployments, definitely learn Linux either Ubuntu or Fedora they’re both fine. A storage solution is worthwhile as well, mainly Postgresql if you go the SQL route or try a NoSQL solution which is basically a map or lookup table.

    • Aeoli Pera says:

      I already use Ubuntu. When you guys say “learn Linux” I assume you don’t just mean getting from boot to a web browser.

      • Jdc says:

        Learn the file structure, the permission system and such things as systemd daemons. Also try use the terminal as much as possible and learn vi. The terminal is immensely powerful and used by most serious unix-like developers.

    • Mycroft Jones says:

      Avoid Rust like the plague. It is long on promises, and even longer on bullshit. For a beginner, it is a way to scar someone for life. Golang is fairly nice, I’d say about equal with Python, but C is still the best language to learn as a foundation. Everything else builds on C. Then LISP. Haskell is for people with IQ of 150+. I don’t qualify; LISP was at my own upper limit, and took several years to get good at.

      • Rust is interesting but not widely used. I’m assuming we’re giving Aeoli tips here so he can 1) get started with programming and 2) have a skillset that he can use to get a job ASAP.

        Go is nice but not widely used either AFAICT.

        Python is not widely used in my part of the world, but I think it is in other parts (as is its close relative Ruby). Not a bad option. (I’ve noticed that this tends to geographically cluster – “no one” uses Ruby in Sweden, whereas in Denmark it’s fairly popular).

        C is overkill for a beginner. Too much overhead learning about architectural details and too much needlees bookkeeping of bytes. The jobs are mainly in embedded or gaming (but then it’s C++).

        Lisp: basically zero job market, even if you count relatives like Clojure. Some cool concepts, but can wait.

        Haskell: if he wants to learn Functional Programming, the ceiling is pretty high in a language like Javascript. You can do almost all of the FP stuff you want, with some contortions.

        I hate to shoot you guys down, but in this case I do think I’m highly qualified to answer, and Aeoli is trusting us to give the best answer for his situation.

        Given his constraints, Javascript is the best option to start with.

  7. Jdc says:

    Oh yeah, look into React.js as well. I would avoid Angular as React is faster and more modular. But then again it’s subjective really and depends on what your employer wants you to use. Just learn javascript, css and html for now.

    • Aeoli Pera says:

      I’m already somewhat comfortable with HTML, and I learned a little CSS back in the day (2004?) so it wouldn’t be tough to pick it back up.

      Looks like Javascript is the key to the kingdom.

      • Jdc says:

        CSS is a different beast now. A lot of modern CSS basically eliminates what used to be only achievable in JQuery. A lot of people use CSS pre and post processors as well, technologies that are part of Node.js’s package manager npm. Just give node a go along with ES6 and html5. HTML basically has named tags that allow aspects of browsers, screen readers and other devices to classify sections of the document. That’s what is meant about semantic html, it’s not just a bunch of divs.

        http://learn.shayhowe.com/advanced-html-css/

      • Jdc says:

        btw, I am a thal too. At least that’s what DoomPony called me a few years ago when I used to talk with him on Twitter during his rants.

      • Yes, learn a CSS preprocessor like Less or Sass.

        Also, ES6 is nice. The big difference between it and ES5 is mainly generators and await/async (which I think are technically ES7 but are available with node-babel). The rest is mainly syntactic sugar (looks good but doesn’t provide something qualitatively new). Even the classes in ES6 are just syntactic sugar on prototypal inheritance AFAIK.

      • Edenist whackjob says:

        The biggest bitch with CSS: positioning. And getting stuff to look good responsively (different screen sizes and devices).

        Learn the box model and how the various display types (block, online, table, etc) and positions work (absolute, relative, fixed) work.

        For responsive, Bootstrap is the standard so learn that. Focus on the grid system.

        Learn flex-box. It’s a newer standard that fixes a lot of the idiocy with the box model and makes responsive grids easier too.

    • This is basically the landscape of JS frameworks right now:

      Angular 1 is the king and has been for about 2-3 years now.

      Backbone, Knockout, Ember are some older contenders that are still popular.

      React is an up and comer that is taking market share from Angular. It doesn’t provide as much structure so you basically have to learn another add-on framework (Redux, Reflux, etc).

      Angular 2 is on the horizon, but hasn’t really gained traction yet.

      Aurelia is like Angular 3 but not widely used.

      My take: learn Angular or React. I think the latter is more popular in the US than here, so should be fine.

  8. Heaviside says:

    You can get books on gen.lib.rus.ec, bookzz.org, sci-hub.io… I’m sure programming books are a snap to find.

  9. Pingback: Compiled tech career advice from comments | Aeoli Pera

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s