TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Learning 2 Hack - For the very first time. With a deadline.

44 pointsby biz2hackover 15 years ago
Dear HN, This is a plea for advice. I've recently decided to take the plunge and learn how to code. I have my own startup that I foolishly outsourced, and I've decided that there really is no other way around it then sitting down and learning to hack myself, and then iterating the product once I have a better handle on things.<p>Items I submit for consideration:<p>1. I have a site already running (more or less, it will be at least within the week) on rails. I have no idea what is going on, but I'd like to figure it out and be able to change functionalities as I learn about my customers.<p>2. I have never coded before. Not even once. I still don't understand what a hash is, really. Aside from taking a class, I really don't know the best way to learn. I've been reading books, but reading hasn't been doing much for me, since I'm not really absorbing the material. I want to try 'testing' things out...I don't know if that makes sense, but I feel like if I have exercises to do, I will understand concepts much faster then simply reading.<p>3. I have availability to take courses. But, I do not know what courses to take. I am based out of the bay area, and am open to suggestions for classes for beginners.<p>4. I have a self-imposed deadline of four months. Is this enough time to be able to handle simple, workable functions on rails? (The common answer, my guess is, is that it's completely up to me. But I'm just looking for perspective. what can I possibly get accomplished, if I am starting from scratch?)<p>Also, supplemental 5: Would there be anyone out there who would be willing to learn with me? I think having a partner would help tremendously, but I don't know where to find people in such a situation.<p>Please let me know your thoughts.

23 comments

coderdudeover 15 years ago
Just a general bit of advice: You will learn more iterating through "change the code, save the file, execute the code, repeat" than any amount of plain reading. When I learned Python, I sat down with Dive Into Python and the command line.
评论 #945477 未加载
ihumanableover 15 years ago
If you want to get a handle on the basics, especially ruby basics, try out ruby koans.<p><a href="http://github.com/edgecase/ruby_koans" rel="nofollow">http://github.com/edgecase/ruby_koans</a><p>They are simple exercises that you can work through without prior knowledge, its a fast and fun way to get your feet wet. Then its important to read some books and get a good foundation under those wet feet, but we all know books can be boring, try to find one that has an actual project you work on throughout, seeing concepts come to life in front of you can be really helpful.<p>Then try to look at some code, since you are using rails I would highly suggest railscasts ( <a href="http://railscasts.com/" rel="nofollow">http://railscasts.com/</a> ) they are short videos, but there are 188 as of this writing that show some cool stuff about rails and get you in the hacker mindset.
评论 #945291 未加载
评论 #945290 未加载
abstractbillover 15 years ago
Get whoever coded this site for you to explain how to deploy it, in enough detail that you would be very confident re-deploying it several times a day if you wanted to. If the original coder is unavailable, find a hacker friend who can figure the process out for you.<p>Once you're comfortable deploying, start making <i>really</i> small changes. Don't bother with books or classes yet - they'll round-out your knowledge once you know the basics, but in my experience they're not much use for getting people started. Begin by just editing bits of text on the website. Then progress to really small pieces of functionality. Try to deploy some small positive change to the site at least once a day. Doing this will build your confidence and get you to the point where you can make gradually bigger and bigger changes.
评论 #945370 未加载
iceyover 15 years ago
I would start with these books:<p><a href="http://www.amazon.com/Beginning-Ruby-Novice-Professional/dp/1590597664/" rel="nofollow">http://www.amazon.com/Beginning-Ruby-Novice-Professional/dp/...</a><p><a href="http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition" rel="nofollow">http://pragprog.com/titles/rails3/agile-web-development-with...</a><p>With your deadlines, you're going to have to skip over some CS basics just to get everything going. That's okay though, there is enough to learn to keep you busy for a lifetime. The most important skill set that you need to learn <i>right now</i> is how to determine what's important this second and what can wait until later. Deadlines are a fantastic way to learn that skill :D
vakselover 15 years ago
Here is what you should do:<p>1. Get the firebug extension for firefox. It will allow you see changes live on your site, exactly how it appears in your browser.<p>2. Hit F12 to launch it.<p>3. Start out by learning basic CSS. Find a class to play around with, let's pick something like<p><pre><code> textarea { color: #000000; font-family: courier; font-size: 10pt; } </code></pre> What will happen when you change #000000 to some other color, #ff0000? AHA! that changes the font color for the text box to red. Perfect, let's try another class.<p>4. Next you should learn HTML, use the element tool in firebug and select one of the elements. It'll highlight the element in question. And will show you the code for that element. Click edit, and see the full code for that element. Then modify the code and try different options, to see what the changes do.<p>I'd use Dreamweaver as a suggestion tool, since it shows you all available options. Which comes in handy, if you don't really know HTML like the back of your hand.<p>Your #1 priority is learning to read other people's code. After you do, you can quickly "borrow" their code for whatever it is you are working on. Especially useful if it's just CSS/HTML.<p>5. After your get the hang of HTML and CSS, you can move on to scripting languages and databases. By this point you should be able to read other people's code, which will help you find the code snippets in the code your freelancer wrote for whatever example you are looking for.
kyroover 15 years ago
Hey man, I recently had a similar revelation that I just needed to learn how to code. I picked up ruby a week ago with the intent of learning rails and building web apps. I knew a bit of python/django before, but nothing that could be considered hacker knowledge. If you want to learn together, let me know. It'd probably help the both of us. I have a few ebooks and what not that I could send you that have helped me learn the basics. I'm kyrobeshay on freenode #startups. Email is in my profile.
评论 #945410 未加载
Mzover 15 years ago
My websites started with someone else asking permission to post something I had written on her site. She made a little subsite on her site for my stuff. I sent more content to add to it occasionally. When she could no longer keep up, she gifted me the templates. My then-husband was pursing a degree in computer science and took a few minutes to explain a few things to me (like what an FTP program was) and I started with a Yahoo account which apparently wasn't very hacker friendly. I later moved my sites to something with more flexibility when I knew more. Initially, I could only copy and paste colors to change backgrounds and copy and paste text to make a new page. The first time I tried to change anything structurally, I messed it all up. The woman who wrote the original templates kind of mentored me for a time and I eventually used some CD's, online sites, and a book or two to learn more coding, supplemented with talking with friends online who knew more than I did. I still tend to look things up "as needed". I do okay these days with my websites. They are in (X)HTML and CSS.<p>My current goal is to learn a programming language so I can write a game. I have yet to seriously pursue that. I don't have a deadline though. Que sera, sera.<p>I hope my story is helpful to you and good luck with this.
jleesover 15 years ago
<i>I've been reading books, but reading hasn't been doing much for me, since I'm not really absorbing the material. I want to try 'testing' things out...I don't know if that makes sense, but I feel like if I have exercises to do, I will understand concepts much faster then simply reading.</i><p>IMO, then, you've been reading the wrong books. I went through "Learning Rails" (O'Reilly) and followed the text through, actually doing stuff rather than just reading about it, and it worked great. I do recommend the "Learning (foo)" series by O'Reilly, but I don't have a copy of Learning Rails right here to flip through to see quite how absolute-beginner-friendly it is. The Pragmatic Programmers guides to Ruby on Rails are also quite good. Flip through books in B&#38;N or something to see if you can find something with really appealing worked exercises, do it cover to cover, and then sit down with the guys who did your current site and get them to explain it to you.<p>Alternatively, set yourself a target small project that isn't maintaining an existing site, e.g. creating a blog. Plenty of screencasts and online tutorials on that sort of thing to follow along with but I would say most of them assume knowledge of programming, whereas books tend not to.
Quiarkover 15 years ago
&#62; I've been reading books, but reading hasn't been doing much for me, since I'm not really absorbing the material. I want to try 'testing' things out...I don't know if that makes sense, but I feel like if I have exercises to do, I will understand concepts much faster then simply reading.<p>OMG of course, this is how everyone does it and you leave me amazed at why didn't you try to code something yourself?
christonogover 15 years ago
Hey there, Though I am a little ahead in building a Rails app, I'm essentially in the same position you are in and (more importantly) have the same mindset of building it myself. Shoot me an email and hopefully we can help each other with our projects.
评论 #945622 未加载
bugsover 15 years ago
One thing that will be limiting your motivation is how much you actually like coding if you truly do like it I'm sure you can be competent as to what is happening on your rails site in your time frame but if you absolutely loath programming the goal may be a hard one to reach.<p>For ruby you probably could do well starting off with Why's (Poignant) Guide to Ruby <a href="http://mislav.uniqpath.com/poignant-guide/" rel="nofollow">http://mislav.uniqpath.com/poignant-guide/</a> and maybe buy pragprog's ruby book, programming ruby, or the ruby way and move up from there<p>Just remember to try and change the code yourself, you have to interact more than read the books
mpingover 15 years ago
I would dare to suggest that you create a HN thread for other novices. Better yet, you use this thread to ask your questions, and some folks here will try and answer politely.<p>Don't worry about the possible flak because of the n00b questions, we ALL were n00bs at one point of time...<p>As for point 4, you can learn to create a whole site without knowing what's the difference between a function and a closure, so worry about practicing your coding skills hehehe I'm sure you'll nail it if you code regularly.<p>The best of luck, welcome to our world &#60;insert dark laugh here&#62;
tsallyover 15 years ago
Whys Poignant Guide to Ruby is an excellent, gentle introduction to Ruby. If it fits your personality that is. Have a look and decide for yourself.<p><a href="http://www.scribd.com/doc/2236084/Whys-Poignant-Guide-to-Ruby" rel="nofollow">http://www.scribd.com/doc/2236084/Whys-Poignant-Guide-to-Rub...</a><p>Remember that Rails is just a large Ruby program. The best way to understand Rails is to understand Ruby (plus MVC and other general software development theory that Rails uses). If you don't understand Ruby, you'll just be a copy/paste Rails programmer.
marcamillionover 15 years ago
biz2hack....like everybody else pointed out, the best way to get into it is to jump in with trying small changes, and seeing the effect of those changes. I was in a similar position as you recently, except that I know all the fundamentals of programming - did a BA in Comp Sci :)<p>However, I have recently taken a liking to Ruby and am committed to learning Rails. I looked at many Ruby books and even tried the poignant Ruby tutorial that other posters have linked to, but I found the best tutorial &#38; accompany book is the 'Learn to Program in Ruby' book by Chris Pine. <a href="http://pine.fm/LearnToProgram/" rel="nofollow">http://pine.fm/LearnToProgram/</a> He started writing a Ruby tutorial online and refined it according to feedback from readers. Then once he had all of that done, he published it in a complete book. But the bulk of the tutorial is still available free at the link I posted above.<p>Chris does an awesome job of making programming accessible. He assumes you don't have any experience programming, and breaks down everything into 'human-friendly' language. It is hands-down one of the best programming texts/tutorials I have ever seen. The truth is, I have been searching for a similar text for Rails, but haven't found it.<p>If you start there, I think that would be a good place to start.<p>Keep us posted on how it all goes.<p>Good luck!
jacquesmover 15 years ago
Hey Biz2Hack,<p>You posted this earlier today and I wrote you a reply, then when I hit 'submit' the page was deleted!<p>Here is what I wrote:<p>(1) Well, you certainly have your problems cut out for you.<p>You won't be lacking in motivation, that's for sure :)<p>Where to start...<p>Programming is a method, a way of thinking, it has nothing to do with the actual language that you use to do it in, that's just a means to an end (though judging by the various language wars they are probably more like religious factions). Changing your site is great, but you'll have to set up a development and a production environment, and make sure you run those on two separate databases to make sure that if you do something you end up regretting you can revert back without your users catching any grief.<p>(2) Pick whatever feels best and easiest to you. That choice seems to have been made for you, since you mention 'rails', but really that's a framework for a language called 'ruby'. So ruby comes first, then rails.<p>Probably your best bet is to start off with making a list of the terms that you keep coming across (rails, ruby, framework, webapp) and so on, then read the wikipedia page on each of those to give you a feel for the terminology.<p>A 'hash' is a programmers trick to turn any object (usually a string, but you can apply hashes to just about everything else) into a more or less unique number. That way it becomes easier to find things, hashing is used for many purposes but one of the main applications in programming languages is so allow you to find in a very short time an entry in a list without having to go through all the items in the list one by one.<p>Your best bet to understand this stuff given the requirements of your situation seems to be to get a book on entry-level ruby, read that until it falls apart making sure that you do and understand all the exercises, then to move on to the rails framework.<p>You can test things out but I think there are better ways of learning how to program a given framework than messing around with a live website.<p>(3) As for courses, there are lots of tutorials available online, I would advice you to find a programmer buddy, preferably one that already has experience in the field that you are interested in.<p>4) could be, depends on how much time you put in there and how much background you already have. It sounds like a tall order to me, but when sufficiently motivated I'm sure you'll amaze yourself in what you can do in three months of really hard work.<p>(5) I completely agree with you there, hence the tip for a programming buddy. I'd look for that IRL though, and only use online fora as a backup plan if you can't find a live human being.<p>best of luck with all of this, let us know how you fared!<p>j.<p>-----
评论 #945474 未加载
评论 #945620 未加载
jmonegroover 15 years ago
What better language for someone like you than my language of choice, Ruby.<p>Get started here: <a href="http://tryruby.sophrinix.com/" rel="nofollow">http://tryruby.sophrinix.com/</a>. Now. When you get that done, if you want more goodies, email me (email in my profile) or reply, I'll be glad to help.<p>Also check out <a href="http://www.htdp.org" rel="nofollow">http://www.htdp.org</a>
yanover 15 years ago
My contact information's in my profile. If you have any questions, no matter how general or specific, don't hesitate to bug me.
randliuover 15 years ago
Since you're in the bay area, you should look into regional meetups for people learning/using rails. There's one at Berkeley the third Tuesday of each month (Nov 17 this month)<p><a href="http://ruby.meetup.com/81/" rel="nofollow">http://ruby.meetup.com/81/</a>
biz2hackover 15 years ago
Hey everybody, I just wanted to let you know I've created #HNBeginners for those who are just starting out and or those who would like to contribute and help other people out who are just getting started. Please drop by if you can!
biz2hackover 15 years ago
Thank you all so much! I will definitely keep you updated of my progress, and if there is anyone who would like to e-mail me to get in contact with me, my e-mail is in my profile. Thanks again!
iterationxover 15 years ago
Do you have source control set up? Because you will break the code and be unable to fix it and that might cost you 4 months itself. Source control is your #1 priority.
sutroover 15 years ago
Read this: <a href="http://norvig.com/21-days.html" rel="nofollow">http://norvig.com/21-days.html</a>. If you start now you'll be good to go in 2019.
Daniel_Newbyover 15 years ago
Once you get going, you'll want version control to keep track of the editing process.<p>So what version control software is good for a total novice? (I use git because it is industrial strength, but that may not be the best for biz2hack.)<p>What version control does: It keeps a record of all the little changes you make as you create your code. If you blow something up, no problem, just revert the latest change. If you want to try a wacky experiment, you can put it in its own little sandbox and ditch it if it doesn't work out. If a bug shows up, you can work back through earlier changes until it disappears: the next change is the one that introduced the bug.