How to learn JavaScript?

Learn JavaScript tutorials guides courses
1.Ask HN: Anyone here have good material for learning how to sketch from scratch?
Possible red flags:<p>- &quot;<i>One day, eventually, if all the stars align, I want to maybe be able to X</i>&quot; pattern. Yes it&#x27;s good to have goals, and socially approved of to be humble; a risk with this is that people who are compelled to do X are already doing it right now, badly, because they enjoy <i>doing it</i>. You could have drawn many people in the time it took you to write that post, and then said &quot;draw better action scenes with people fighting&quot; or &quot;more realistic faces&quot; or etc. Something specific. The possible red flag is: &quot;I want to be in a band&quot; imagining being on stage and being worshipped, instead of &quot;I strum on the guitar and enjoy it and want to be able to play Stairway to Heaven&quot;. If by any chance you don&#x27;t like the action of drawing already right now, why will you want to draw people later if you have the ability? What will change?<p>- You want to draw &quot;people or landscapes&quot;. Also good to have goals and range, but possible red flag is that the goals are suspiciously vague. Could it be that you don&#x27;t know what you want because you don&#x27;t really want to <i>do</i> either of those things very much? Would you know if you wanted to draw wooden furniture that you are planning to make, or illustrations for a nightmare Lovecraft book? Instead of &quot;I want to play Stairway to Heaven on the electric guitar&quot; you&#x27;re saying &quot;I want to do music or singing is there a good tutorial for that?&quot;. What specific people are you drawn to? Portraits? Action movements? Cartoon style? Anime style? DC Comics style? Or what landscapes? Like Bob Ross, Bill Watterson, Studio Ghibli, or what? If you don&#x27;t know and don&#x27;t care, it&#x27;s back to liking the idea more than the activity. If you do care, maybe choosing and focusing can give you something specific to look for in a tutorial - no point in getting one that covers hands if you want to draw mountains, no point in one which covers plants in detail if you want to draw steampunk, just because you&#x27;ll be more compelled to work on things you want to work on.<p>- &quot;<i>I tried X and it didn&#x27;t work</i>&quot;. Yes guides and tutorials and things can help, red flag interpretation is also that&#x27;s is such a vague comment. &quot;<i>I want to build websites. I tried &#x27;Javascript the good parts&#x27; but it didn&#x27;t work</i>&quot; as if the book &#x27;worked&#x27; you&#x27;d be able to code and if you can&#x27;t code after reading it, the book didn&#x27;t work. As if working is a thing books can do or not do. Did it not give you anything to think about? Anything to practise? Did you do the self portrait at the start and end and not improve?<p>- &quot;I am willing to pay hudreds of dollars&quot; - Is that coming from a place of &quot;expertise and coaching is something I respect&quot; or from &quot;can I skip the hard and boring bits by throwing money at it?&quot;. Only you can know.<p>- Analysis paralysis. I understand it, and I suspect a common reason for it is that people &quot;want&quot; to do things, but don&#x27;t really want to, so there&#x27;s nothing to force any action one way or another. Consider: do you want cake or ice cream? Hard decision. Do you want cake or dog poop? Easy decision. People who &quot;want to write games&quot; can&#x27;t decide on the &quot;best way&quot; for months at a time. People who are compelled to get their game idea into reality have no time for analysis paralysis, any tutorial will do, get to the point already, I&#x27;ve got things to create! There&#x27;s no analysis paralysis in &quot;I want to plant potatoes in my garden this growing season and that gives me 2 weeks and there&#x27;s one garden center near by&quot;. There&#x27;s analysis paralysis in &quot;growing some of my own food would be nice, but what? should I get an allotment? What&#x27;s the perfect soil? Which online shop has the ~ best seeds ~? What tools do the pros use? What&#x27;s the best gardening TV show?&quot;.<p>Do you want to spend your time doing the activity of drawing? Is that something you already do, now? If yes, it makes it much easier: look for the courses which teach the thing you want to improve at, specifically. If no, maybe do that first or ask yourself why you &quot;want to be able to draw&quot; when you don&#x27;t ever draw?<p>This post brought to you by years of watching people say &quot;I want to learn to program, what would be <i>the best way</i>(tm)&quot; on the internet, when they could be opening an editor and fighting the parser to get some code working, any code. Paradox: If you don&#x27;t care what you draw, any tutorial will do. If you do care, there should be little analysis paralysis because most tutorials are irrelevant to what you want, and of all the ones which are targetted at what you want, any one of them will do.
2.Best syllabus to become a entry-level web developer?
So I did Dev Bootcamp: we learned the basics of programming in 8 weeks and covered a lot of guides and such. This is what I would recommend:<p>Start with <a href="http://www.codecademy.com/" rel="nofollow">http://www.codecademy.com/</a> for learning basic HTML, CSS and Javascript.<p>Then I'd recommend learning Ruby as a programmer. It's easy and fun to learn, there's a lot of demand for jobs (good jobs from startups to big companies to consultancies) so you can find a job pretty easily and there's a great community of people willing to help you out with it. Here's some resources for learning Ruby and Ruby on Rails:<p><a href="http://tryruby.org/" rel="nofollow">http://tryruby.org/</a> (15 minutes beginner tutorial)<p><a href="http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html" rel="nofollow">http://tutorials.jumpstartlab.com/projects/ruby_in_100_minut...</a> (basic intro to Ruby to read)<p><a href="http://rubymonk.com/" rel="nofollow">http://rubymonk.com/</a> (interactive learning ruby exercises)<p><a href="http://tutorials.jumpstartlab.com/projects/eventmanager.html" rel="nofollow">http://tutorials.jumpstartlab.com/projects/eventmanager.html</a> (Ruby project dealing with CSV files)<p><a href="http://tutorials.jumpstartlab.com/projects/jstwitter.html" rel="nofollow">http://tutorials.jumpstartlab.com/projects/jstwitter.html</a> (Ruby project integrating with twitter)<p><a href="http://www.codeschool.com/courses/try-git" rel="nofollow">http://www.codeschool.com/courses/try-git</a> (git tutorial, very important for web development with others)<p><a href="http://railsforzombies.org/" rel="nofollow">http://railsforzombies.org/</a> (basic intro to rails)<p><a href="http://ruby.railstutorial.org/" rel="nofollow">http://ruby.railstutorial.org/</a> (Rails project to build a Twitter site- long and intense but VERY worth it)<p><a href="http://tutorials.jumpstartlab.com/" rel="nofollow">http://tutorials.jumpstartlab.com/</a> (more tutorials and info on Rails along with Ruby)<p><a href="http://railscasts.com/" rel="nofollow">http://railscasts.com/</a> (more advanced stuff on Rails, covers some basic stuff as well, video plus text)<p><a href="http://www.rubyquiz.com/" rel="nofollow">http://www.rubyquiz.com/</a> (Ruby exercises to try with answers from others-these are more advanced)<p>More text based:<p><a href="http://guides.rubyonrails.org/" rel="nofollow">http://guides.rubyonrails.org/</a> (read these to really understand Rails)<p>Books to read: Agile Web Development with Rails (newest edition, considered THE book on Rails)<p>Programming Ruby (considered THE book on Ruby) The Rspec Book (about testing, super important to learn, AO3 gives free copies to coders there)<p>Metaprogramming Ruby (great for understanding the intricacies of Ruby and how to bend it to your will)<p>Crafting Rails Applications by Jose Valim (great for understanding how Rails really works, more advanced)<p>The MOST important part is after a week or so (or less) of reading and practicing tutorials in the like, find something you're passionate and try to build it. Ask for help from other programmers, Rubyists love to help and try to find RL meetups if you can.<p>Good luck!
3.DIY Computer Science Degree
A bit of advice from someone who is trying to do the same:<p>- Learn one language&#x2F; platform at a time. Also, think about what you want to learn. Web development? Mobile? CS fundamentals? It is very easy to waste alot of time when your are not focussed on a particular goal.<p>- Try not to get tricked into spending to much time on those fancy looking tutorials. Building something yourself is much more valuable than obtaining meaningless &#x27;badges&#x27; and achievements.<p>- Ruby on Rails is complex and I would not recommend it for beginners. I wasted alot of time doing tutorials that covered random parts of rails that I never used in projects. Again, if you want to learn Rails, start your own project as soon as possible and select learning materials based on that.<p>- Stick with the basics. Try not to get distracted by frameworks, tools and the overwhelming amount of tutorials available.<p>for javaScript, have a look at this:<p><a href="http://javascriptissexy.com/how-to-learn-javascript-properly/" rel="nofollow">http:&#x2F;&#x2F;javascriptissexy.com&#x2F;how-to-learn-javascript-properly...</a><p>Ruby &#x2F; Python:<p><a href="http://learncodethehardway.org/" rel="nofollow">http:&#x2F;&#x2F;learncodethehardway.org&#x2F;</a> <a href="https://www.udacity.com/course/cs101" rel="nofollow">https:&#x2F;&#x2F;www.udacity.com&#x2F;course&#x2F;cs101</a><p>rails <a href="http://guides.rubyonrails.org/getting_started.html" rel="nofollow">http:&#x2F;&#x2F;guides.rubyonrails.org&#x2F;getting_started.html</a><p>good luck
4.Ask HN: Can someone with just CSS/HTML experience get a tech job?
Hey Eranation! I think you can get started without too much trouble. You could try gun.io or grouptalent.com to get some freelance projects under your belt.<p>To do well in this industry you need to be a learner. I'm going to take some time to lay out how to learn web design.<p>1. My number one advice: Try new things. Don't limit yourself. Don't get overwhelmed. Don't tell yourself you could never do JavaScript (for example). Please don't get overwhelmed at the size of this post ;-) Also, keep an open mind. Don't fall into the mantra that there's one true way to do anything.<p>2. Do you have any graphic design skill? You have a good chance of breaking into the industry if you do. I am strong enough on Linux administration and PHP code that I can get along without very much design knowledge. However, one of my number one priorities is to grow in my knowledge and experience of graphic design. I glanced over your submissions and it sounds like you might have some design know-how. Anyway, I think you will find the links I included quite helpful.<p>3. In line with advice #1: I recommend that you gradually work your way toward a better understanding of how to code. Begin with JavaScript, probably jQuery. I would focus on tutorials that show you how to create visual effects / more complex user interfaces (switching content on and off, etc). Then dig deeper into JavaScript. I would focus on Javascript because it's a very interesting language and because you have to learn it anyway for frontend work. At some point, you may have to learn PHP (which, frankly, isn't very interesting).<p>EDIT: fixed formatting typo; tried to make it more on topic.<p>_________________________<p>Design Links:<p>* The following guide is fantastic. This helped me the most.<p><pre><code> &#62; http://www.andyrutledge.com/gestalt-principles-1-figure-ground-relationship.php </code></pre> * More great guides.<p><pre><code> &#62; http://www.visualmess.com/ &#62; http://paulstamatiou.com/startup-web-design-ux-crash-course &#62; http://blog.easel.io/blog/2012/07/02/design-without-a-designer/ </code></pre> * Picking a good color scheme is essential.<p><pre><code> &#62; http://design-seeds.com/ &#62; https://kuler.adobe.com/ </code></pre> * People go online to read (or watch videos). So typography really is super important.<p><pre><code> &#62; http://retinart.net/graphic-design/secret-law-of-page-harmony/ &#62; http://www.pearsonified.com/2011/12/golden-ratio-typography.php </code></pre> * Design is a lot about imitating other people's work. Here are some places where you can see that work.<p><pre><code> &#62; dribbble.com &#62; forr.st &#62; patterntap.com &#62; http://thedesignreport.com/ </code></pre> * Depth is essential for a design that takes your client's breath away. Here's a great article about John Harris's use of depth and scale.<p><pre><code> &#62; http://colorcubic.com/2010/09/07/the-science-fiction-art-of-john-harris/ </code></pre> * You've probably figured out that responsive design is crucial in today's environment. Here are my favorite links.<p><pre><code> &#62; Responsive Layouts: http://www.lukew.com/ff/entry.asp?1514 &#62; Responsive Examples: http://mediaqueri.es/ &#62; Responsive Navigation: This is one of the most important things to get right, especially for a phone layout. http://bradfrostweb.com/blog/web/responsive-nav-patterns/ </code></pre> * Stunning graphics is more likely to get you a job than user interface design. But UI design (or UX "user experience") is arguably more important. The following articles will get you started.<p><pre><code> &#62; Designing better interfaces: http://www.slideshare.net/Wolfr/designing-better-user-interfaces &#62; Emotion and Users: http://blog.gaborcselle.com/2012/05/eight-emotions-every-user-enjoys.html &#62; Principles for Form Design from Eye Tracking Studies: http://www.cxpartners.co.uk/cxblog/web_forms_design_guidelines_an_eyetracking_study/ &#62; Signup page: http://www.contrast.ie/blog/designing-your-sign-up-page/ &#62; Simplifying sign up forms: http://sachagreif.com/simplified-sign-up-and-log-in/ &#62; Anatomy of a Landing Page: http://www.formstack.com/the-anatomy-of-a-perfect-landing-page &#62; Improving usability IQ: http://ui-patterns.com/blog/How-to-get-better-at-UI-design </code></pre> _________________________<p>Coding Links (Mostly JavaScript):<p>* Good jQuery resource:<p><pre><code> &#62; http://jqfundamentals.com/book/index.html </code></pre> * Great first taste of how Javascript looks and feels:<p><pre><code> &#62; http://ejohn.org/apps/learn/ </code></pre> * Lots of skills you should eventually try to master:<p><pre><code> &#62; http://rmurphey.com/blog/2012/04/12/a-baseline-for-front-end-developers/ </code></pre> * The ShopTalk podcast and the CSS Tricks blog could be a good first step from CSS to hard-core programming. However, after looking at your submissions, I'm pretty sure you already know these people.<p>* After you've played around with some jQuery, you should learn javascript from the ground up.<p><pre><code> &#62; http://eloquentjavascript.net/contents.html </code></pre> * Doug Crockford is a very famous (and influential) javascript guru. Please Note: he's extremely opinionated and assertive! You've met people like this in real life and you know that they are usually too one-sided. He's got good things to say, but keep an open mind.<p><pre><code> &#62; Book: Javascript: The Good Parts (find it on Amazon) &#62; Helpful Crockford articles: http://javascript.crockford.com/ </code></pre> * Six months from now, when you've mastered Crockford's way of doing things, try opening your mind and reading the following. Indeed, a lot of (closed-minded) people would shoot me for suggesting these links, but they show that the standard advice isn't always true.<p><pre><code> &#62; Javascript doesn't need semicolons most of the time: http://stackoverflow.com/a/1028684 &#62; The with statement can be useful: http://stackoverflow.com/a/1028684 &#62; Using JS Function() to increase performance: https://github.com/felixge/faster-than-c#examples </code></pre> * Good resources for keeping up to date on JavaScript:<p><pre><code> &#62; Mozilla Dev Hacks (unfortunately they are overly pro-Firefox): https://hacks.mozilla.org/ &#62; Google's blog: http://blog.chromium.org/ &#62; Sorry the site title is kind of vulgar, but the content is excellent: http://badassjs.com </code></pre> * I could include a million javascript frameworks and plugins. However, I recommend that you don't start with these frameworks right away. It's easy to get blown away by the complexity. Learn core javascript. Get experience building your own stuff, learn that you need more structure, experiment with different ways of structuring your code. Then try BackboneJS.<p><pre><code> &#62; http://backbonejs.org </code></pre> _________________________<p>CONCLUSION<p>Good luck! Let the HN community know how it turns out for you!
5.Ask HN: How should one go about learning JavaScript?
It depends a lot on what your starting point is. That is, the approach will be different for someone who maybe isn&#x27;t a programmer at all ATM, or for someone who has <i>some</i> experience with some other language, or has fairly extensive experience with other languages but none or little with JS. Or any other circumstances.<p>For someone with no programming experience at all, there are various opinions on what your first language should be, but in any case there&#x27;s abundant material and courses that teach general programming using JavaScript.<p>For someone with programming experience but not JavaScript. Perhaps some of the stuff [1] written by Axel Rauschmayer <i>may</i> be good. Or maybe some other resources like &quot;The Modern JavaScript Tutorial&quot; [2] or this other one [3]. I used to recommend Eloquent JavaScript [4] also. I do think it is a good book, but feedback from various people indicates that is clearly <i>not for everyone</i>, so YMMV.<p>MDN (Mozilla Developer Network) is something you should keep at hand, but more as a reference than as a guide. It <i>does</i> have some learning guides [5], but in general I wouldn&#x27;t recommend them that much. Still, do keep a link to the MDN as it is a very good reference to go look for specific explanations (sometimes).<p>All of those mentioned above will generally help you learn the language, which is what you should probably do first. My recommendation would be to have a first look at the links and choose something that matches your learning style. Still keep the others, since sometimes a combination of different explanations will make things easier to understand.<p>I haven&#x27;t mentioned any libraries or frameworks. I know there are some courses out there which very quickly throw you into focusing on some framework or other. Personally, I would recommend against that, if your intention is to learn JavaScript well. At least initially.<p>There are also some &quot;JavaScript Roadmaps&quot; out there. I mean stuff that looks like this one [6] -but not <i>that</i> one, which is for frontend development in general-, a huge chart&#x2F;list&#x2F;map of concepts and ideas that are supposed to cover &quot;everything you need to know&quot;. I would not recommend following those. While they look impressive and pretty, they can also feel overwhelming while not providing any particularly good <i>path</i> to follow.<p>[1] <a href="https:&#x2F;&#x2F;exploringjs.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;exploringjs.com&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;javascript.info&#x2F;" rel="nofollow">https:&#x2F;&#x2F;javascript.info&#x2F;</a><p>[3] <a href="https:&#x2F;&#x2F;learnjavascript.online&#x2F;" rel="nofollow">https:&#x2F;&#x2F;learnjavascript.online&#x2F;</a><p>[4] <a href="https:&#x2F;&#x2F;eloquentjavascript.net&#x2F;" rel="nofollow">https:&#x2F;&#x2F;eloquentjavascript.net&#x2F;</a><p>[5] <a href="https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Learn&#x2F;JavaScript&#x2F;First_steps" rel="nofollow">https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Learn&#x2F;JavaScript&#x2F;Fi...</a><p>[6] <a href="https:&#x2F;&#x2F;roadmap.sh&#x2F;frontend" rel="nofollow">https:&#x2F;&#x2F;roadmap.sh&#x2F;frontend</a>
6.What programming languages do you know and which ones do you want to learn?
The languages I used tied pretty heavily to the computers I used.<p>In chronological order:<p>- 7-8 (&#x27;98-99): Accidentally broke the menu system on a random old DOS machine I was given. The person who gave me the box wrote a new menu for it in QBasic 1.1. This person did not know about &quot;QBASIC &#x2F;RUN&quot; + &quot;SYSTEM&quot;, so gave us instructions (&quot;Alt, F, X&quot;) on how to exit QBasic. Of course I <i>didn&#x27;t</i> exit QBasic, I tinkered with the menu system. This machine was eventually returned to the person who gave it to me (along with another).<p>- 8 (99): Was given an old 486-25 by a friend; this ran DOS 6.22 and Win3.1. I think it was assembled by a local computer retailer; the VGA ROM BIOS had &quot;Eagle Systems Australia&quot; burnt into it. Very curious as to that worked out. I&#x27;m not certain but I don&#x27;t think this machine had QBasic on it. Windows eventually fell over (I have no idea why), so I stuck with DOS. I don&#x27;t remember much of what I did with this box at this point.<p>- ~11 (02): I vaguely recall finding out the machine had something wrong with it internally (I was <i>not</i> knowledgable to any degree at this point), and someone from a local church (IIRC?) offered to fix it, which turned out to mean replacing the HDD (...ah, that explains why Windows fell over). Not quite sure if the old HDD was copied to the new or how that worked out, but I remember a parallel cable and Microsoft Backup (although I didn&#x27;t know that&#x27;s what I was looking at at the time), but it had QBasic on it when I got it back, so I continued tinkering. (A second PC also manifested sometime around this point, but I didn&#x27;t have any floppy disks to copy QBasic onto it from the other machine IIRC.)<p>~14 (03): Started visiting the local library. I would <i>so</i> like a copy of my Internet history from back then! Somehow stumbled on QuickBasic 4.5 and was able to download it onto a floppy disk; didn&#x27;t use many of its additional features myself, but tinkered with (and completely failed to understand) some programs I found online that did. Filled a &quot;QB&quot; directory on my disk full of embarassing half-finished .<p>~15: Was randomly given an old Celeron which got me my first exposure to Win98. Somehow discovered Resource Hacker while at the library one day. This wasn&#x27;t a language, but I redesigned the UIs of things like Sound Recorder and this taught me about visual UI design and got me wondering why program UIs couldn&#x27;t be fundamentally edited in some semantically consistent way while they were running.<p>- Found Word on the machine and stumbled on its &quot;Save as HTML&quot; option, kicking off my foray into the Web. I tried to copy Word to another HDD but that of course didn&#x27;t copy the sprawl of 10000 random directories and Registry keys that accompany an Office installation. Ended up digging StarOffice 5.1 off of a CD that came with a magazine that had been purchased several years earlier. I learned HTML and JS off of SO, and loved its &quot;desktop&quot; type UI (it really filtered distractions!). I&#x27;m super glad Word broke; I only learned about the kind of &quot;markup&quot; it produces several years later. If I had&#x27;ve ever looked at Word-emitted HTML I don&#x27;t think I would ever have gotten to the point where I let go of SO and started editing the HTML myself. Once I got to that point I also began to learn simple JavaScript.<p>- While researching Basic-like languages I found VB-DOS on a website one day, but forgot to download it. Eventually re-found it some time later on another website that also had Visual Basic (for Windows) 1.0, which I grabbed for lulz. Ended up deciding VB-DOS was too disjointed (takes several seconds to switch between the code editor and the form designer) and tried VB 1.0. I.... may or may not have a &quot;VB&quot; directory with ~100 unfinished projects in it. I had a 450MHz Pentium 3 at this point and my first properly working CD-ROM drive, but the library Internet download speed was rather slow, I had no idea how to &quot;find things&quot;, and I had no idea how to burn ISOs anyway, so eg VB6 wasn&#x27;t in my sights at all.<p>- ~16-17: Asked the similarly clueless and directionless bunch of kids I was hanging out with on IRC for language advice, and somehow began to set my sights on PHP... of all things. (This was where my IQ began its steady decline. I am not joking.)<p>- ~17: Installed Linux, began tinkering. Learned about shell scripting, which immediately clicked.<p>- ~17-19: Somehow managed to grasp pointers after years of trying, and began to tinker with C a bit. I found it generally required too much attention span so didn&#x27;t do much with it.<p>- ~22-23 (2013-2014): Found an old Toshiba on the side of the road (the 333MHz Celeron in it was _removable_) and tried to install Slackware on it from a somewhat scratched CD. PHP was on the scratched part. I wanted to write a fast package selection utility; the only thing I was aware of on the machine besides bash was sed and grep. IIRC, I had to abandon my attempts after less than a week due to all the grep and (multiline!) sed expressions giving me a headache because it collectively looked like modem line noise, but I learned regular expressions in the process :D<p>--<p>I&#x27;d like to learn so many languages I don&#x27;t honestly know where to start.<p>- I recently read about the golang SSL key-verification incident, and must say the devs&#x27; reaction inspired a lot of confidence. I&#x27;ve also been reading a Go ebook for the past month or two. This is the language I plan to use next.<p>- I&#x27;m also reading a Lua ebook too. This language is awesome.<p>- I&#x27;ve come to realize I&#x27;ve been treating PHP like Perl. Half of me wishes I&#x27;d gone back and learned Perl instead, and that it&#x27;s sad Perl doesn&#x27;t have fast Web server integration or even standard FastCGI (at least I&#x27;m not seeing that it does). One the other hand, reading things like <a href="http:&#x2F;&#x2F;blog.schmorp.de&#x2F;2016-12-29-griefing-the-perl-api.html" rel="nofollow">http:&#x2F;&#x2F;blog.schmorp.de&#x2F;2016-12-29-griefing-the-perl-api.html</a> and the 2nd half of <a href="http:&#x2F;&#x2F;blog.schmorp.de&#x2F;2015-11-12-tidbits-why-coro-crashes-or-how-perl-6-deals-with-bugs.html" rel="nofollow">http:&#x2F;&#x2F;blog.schmorp.de&#x2F;2015-11-12-tidbits-why-coro-crashes-o...</a> scares me off of both Perl 5 and Perl 6.<p>- Erlang seems really interesting both from the standpoint of being message-passing-based and also due to the fact that it runs its own kernel. I&#x27;m wondering whether to just deal with Erlang&#x27;s variable immutability (a linguistic paradox!) or whether I should play with EFL or Elixir.<p>- Obviously Lisp is somewhere in there. I&#x27;m unsure which one(s) to learn though: I want to get a good idea of Lisp&#x27;s history, understand its context, and fully grasp what it is about it that everyone likes, so I have a bit of a Star Wars problem - what order to learn everything.<p>- I&#x27;m very very turned off of Python due to the 2.x&#x2F;3.x debacle.<p>- Assembly language has been on my todo list since I was about 14. This one&#x27;s a sore point; I&#x27;ve read more assembly-language tutorials than I could care to recount but always end up near-tearfully confused with eyes glazed over. Hopefully I can figure out what it actually is that I&#x27;m blocking on one of these days. Maybe I should skip asm and just go straight for machine code.<p>- I recently discovered the Forth family of languages. I have to say I really really like the Forth approach to programming - creating shrinkwrapped applications that perfectly trace the specifications of whatever you&#x27;re trying to build, with zero architectural overhead. I&#x27;m going one step at a time with the RPN thing though. :P<p>- I recently realized that Ruby is easy to abuse to &quot;be cute&quot; but that it can also be written straightforwardly and consistently. I didn&#x27;t know that, I like this a lot (because its syntax <i>is</i> nice). I remember reading Why&#x27;s Poingiant Guide to Ruby a few years ago and being heavily turned off by the way the guide made things seem dramatic and complicated. (I now realize my attention span was being spammed by the guide&#x27;s presentational style.)<p>- I&#x27;m guessing I should probably pick up Java at some point, since it will probably come in handy in industry.<p>- On the subject of the JVM, I could probably do worse than to learn Scheme.<p>- C++ has been on my todo list for some time, but my computers are still quite old (I&#x27;m on an 11 year old laptop as of today), so slow compilers are doubly+ slow for me, so I have little incentive to pursue this.<p>I have a lot of problems with indecision, as you may have noticed :) - if something has surface-level issues, I shy away. I will admit that this is in open contradiction to the fact that I continue to learn PHP...<p>My main challenge is in finding a language I can enjoy working with that doesn&#x27;t require a consistently clear brain to work with: I frequently have a foggy head due to various health issues (which are expensive to fix - and, hilariously, are also why I don&#x27;t have a job).
7.Ask HN: Want to join a startup as a developer, looking for a mentor
Put your email in your profile.<p>It's great that you are sufficiently motivated, willing, and ready to learn.<p>Important: You need to iron what kinds of things you <i>really</i> want to create. There are a ton of spaces you can venture into via programming. By your wish list it seems like you want to build web-apps.<p>I currently work for a yc-funded startup as a rails developer. I have no further formal education beyond high-school. I happen to say this a lot but it's exactly for people like you. You don't need a formal CS degree to build web-apps specifically. Of course I couldn't work for google atm but the point is you need to pick WHAT you want to build. Chances are what you like does not involve the stuff you think you need to learn. If you want to work on natural language processing sure you may need some more formal training, but a CRUD app is a CRUD app is a CRUD app.<p>So what do you want to build? What do you <i>really</i> want to build?<p>If you want to be a web junky I can help you there:<p>1) Run Linux.<p>Or get a macbook if you can afford it but you will still need to know Linux since your app will likely be on a linux-based instance. You NEED to know your away around the command line. You might need to check logs or do some sql on your staging server or something. GIT is also a must and runs on the command-line. You'll debug your app in console mode. You'll run rspec tests in console. You'll launch your first rails app on <a href="http://heroku.com" rel="nofollow">http://heroku.com</a>. Next get a <a href="http://linode.com" rel="nofollow">http://linode.com</a> and follow the tutorials about how to set up your own server. (the point is learning how its done, not necessarily being a pro sysadmin).<p>2) Rails.<p>Follow this tutorial and you will finally be able to build that blog engine =) <a href="http://guides.rubyonrails.org/getting_started.html" rel="nofollow">http://guides.rubyonrails.org/getting_started.html</a><p>(note: I usually recommend <a href="http://www.sinatrarb.com/" rel="nofollow">http://www.sinatrarb.com/</a> as someone's first web-app in ruby but it seems like you understand programming enough to tackle rails, though the sinatra is ass-simple and lets you get your hands dirty with ruby itself. But knowing your way around rails is a definite plus on the employability side.<p>3) Get GOOD at MySQL (or another datastore).<p>Apps nowadays are all about the data. The trouble with frameworks is they grow increasingly dependent on abstractions. I'd wager that a good number of employed Rails dev's couldn't write their own sql. Using an ORM is great and has great MVC an advantages but you can't let it be your crutch. Nosql is damned cool but mysql is the defacto standard so therefore gets +1 on employability.<p>4) Javascript.<p>I would not recommend doing any kind of javascript "the rails way". Just nevermind all the stuff you read about javascript whenever it has anything to do with rails. The reason is because you don't actually be writing javascript and you need to learn how to write good, unobstrusive javascript. To speed things up you should be good with <a href="http://jquery.com" rel="nofollow">http://jquery.com</a>. Many here advocate learning to code without a framework but jquery is <i>that good</i>. Again just don't use it as a crutch.<p>Well that's about it for now. Please feel free to ask me questions as these things are surely not as straight forward as I've laid them out to be. Even getting rails up and running can be a pain in the ass (hopefully you aren't on windows). My email is in my profile.<p>Remember, I sincerely believe the most important thing is officially working out what it is you <i>really</i> want to create and then you can assess how to get there.<p>Have fun!<p>Oh almost forgot. Some great advice I got from a fellow programmer I met in Boulder. It's actually the key to what made me commit to learning linux/rails (i was a lamp guy before) and which ultimately led me to the job I have now.<p>"The bar is lower than you think."
8.To code or not to code?
I started coding later in my career. I had been doing HTML and CSS from when I was about 25, but that was just a bit on the side while I was a product manager. I got into server-side languages and then lots of javascript front-end when I was 32. I&#x27;ve learned tons, enjoy coding, but I am also now transitioning into a CEO role after having transitioned back to Product Management just over a year ago.<p>You mention &#x27;more complicated languages&#x27;, which I think is the wrong perspective. The language itself shouldn&#x27;t be considered complicated, it is the overall structure of your application which contains complexity. Data structures and architecture choices will dictate the challenges you&#x27;ll experience more than the languages. Languages are, for the most part, about semantics.<p>I think you&#x27;re a bit ahead of the game in having selected a project to work on. This is how I started coding, and having a vision you are working toward, I think, is a very good thing. A few friends who have wanted to take up coding over the years, never got very far because they would try a few tutorials, but never had their own project to try to adapt what they were learning to.<p>It will be very difficult for you to check code quality without knowing how to code. Even knowing how to code, you have to be pretty good to look at somebody else&#x27;s code and judge it to be of quality or not. This is something I&#x27;ve often struggled with, until you&#x27;re in there mucking around with it yourself and then you will have a better idea of what might be good or bad. This is assuming there are no massively stand-out &#x27;this is horrible&#x27; type issues, but more recognising things that may become issues in the future.<p>So, with startupblink, did you pay somebody to build this? Or have you built it yourself? (I&#x27;m hoping it&#x27;s the latter). If you&#x27;ve built it yourself so far, I&#x27;d say you&#x27;re off to a good start. If you&#x27;ve paid somebody to build it, I think there are some issues (unless you didn&#x27;t pay them much).<p>As far as what languages to learn. Front-end will always need javascript, but now you can also run javascript on the back-end, which means you can learn one language and use it in both places.<p>You can run javascript in a lambda (or google function) which means you don&#x27;t have to run your own server, and it will likely be free for you. You can also learn how to use dynamodb for your database, which will probably be easier than learning sql at first as you&#x27;ll be dealing with documents rather than tables and indexes and stuff.<p>One important thing to keep in mind is that you are going to make mistakes. You will spend a week building something, and then throw it away. That&#x27;s going to be part of learning. You&#x27;re going to come up with a feature, write it out, build a structure around it, and then you&#x27;re going to learn something new and you&#x27;ll get rid of what you wrote. To many people this will seem like a waste of time. It isn&#x27;t. It&#x27;s learning. We all do it to some extent, but I think you get better as you go.<p>I don&#x27;t know about schools and courses. You didn&#x27;t say where in the world you are, or if you know other coders. I was self-taught before online courses existed. You could try a code-academy, or figure out if you have connections to a good developer who may be able to help guide you.<p>Be prepared to bang your head against a wall, but learn to make it feel like you&#x27;re not banging your head against a wall.<p>It&#x27;s a challenging road to take, but I feel a worthwhile one. Though I will be coding less and less in the future, my understanding of coding will continue to serve me in the future. I suspect you will find the same.<p>Best of luck.
Made with ❤️ by Randy Lu