5 ms·
Ask HN: Help me become a hacker
I eventually want to become involved in web-based start-ups through personal projects or maybe something more serious.
Right now I’m at University (studying a non-related science) and I would like to have sufficient ability to take ideas from paper to prototype for when I leave in a couple of years time. I’m currently learning Ruby because I’ve been told it has a friendly syntax compared to PHP, Java etc. I already have knowledge of HTML, CSS and I’m aware of JavaScript.
Up until now it’s going great. I understand pretty much everything in “Learn to Program” (Chris Pine) and I’m having a lot of fun but I do have some questions at the same time:
On a whole, what are the hardest/most boring parts of building web based software? What are the easiest/most enjoyable parts?
How important is developing with efficiency and scalability in mind?
What should I dedicate most of my learning time to?
How do I know if I am producing spaghetti code? I can’t tell good code from bad code.
There are just some of the things from the top of my head for the moment. I know the questions are pretty broad so answer what you want. Don’t flame me please :D
- billclerico 17y agoI would just build and release something. You'll learn quickly what code is good and what is bad from experience.
- mixmax 17y agoHere is my take at the questions you pose: - The hardest and most boring part of a startup is all the stuff that businesses have to do, but that you don't personally find interesting. I hate accounting and taxes, but I have to do it. Some people don't like marketing, some don't like support, etc. But it has to be done. I'm sure you have something that every business does that you find tremendously boring ;-) - The most enjoyable part (for me at least) is seeing an idea take shape and become a real thing. - Don't worry about scalability at first. If it becomes a problem you can consider yourself a success. Better to get something out the door as fast as possible. - Don't dedicate you learning time to anything, start something instead! Entrepreneurship is one of those things that you can only learn by doing. It's like basketball: You can read loads of books about it but only playing the game will make you a good player. It doesn't have to be youtube, just start with something small. Do a small webapp, sell something online, sell t-shirts. Doesn't matter. It will get you a feel for what it's like, and you'll learn a bunch in the process. - Don't worry too much about spaghetti code at first. You can refactor it later. This is a great learning experience as well. When you've written code that looks tangled and that you can't quite follow, refactor. Messy code can become clean over time. Just my two cents :-)
- deleted 17y ago[deleted]
- noodle 17y ago> On a whole, what are the hardest/most boring parts of building web based software? What are the easiest/most enjoyable parts? in general, for me, the best part is the problem solving and building out the thing you created in your mind's eye. the hardest and most boring parts are everything else. > How important is developing with efficiency and scalability in mind? depends on your goals and what you're building. for you, you should be more concerned with building something that works, and learning about things in the process. > What should I dedicate most of my learning time to? decide that you want to build something, and build it. take baby steps, build a small version of your final goal, and add to it. > How do I know if I am producing spaghetti code? I can’t tell good code from bad code. spaghetti code is like art. its hard to define, but you know it when you see it. in the past, it was used to refer to code that makes use of GOTO type statements, where its tough to track the flow of the program. that still exists, but its much less prevalent. now its more used to refer to "bad" code in general.
- kingly 17y agoThanks for the comment. I think I'm going to read some more into some more advanced material (Programming Ruby 1.9) and then get my teeth sunk into a project.
- SandB0x 17y agoFor spaghetti code problems the classic book is Refactoring. He has a whole chapter on "Code Smells" and most of the book is basically an extensive catalogue of techniques you can use to eliminate these. More modern languages like Ruby will allow even cleaner ways of doing things than described in Refactoring (Java), but you can get a good sense for smells common to all languages. Some other thoughts: What science are you studying? There's often scope to do something computational for your thesis/project/dissertation - modelling some physical or biological process. Other ideas: Try and get an internship at a software company. Often a science degree is sufficient and you'll be able to learn about working in teams, using source control, and observe the kinds of things you like and dislike in a workplace. You could also do a CS conversion course once you've finished this degree.
- kingly 17y agoThanks for the book recommendation. I'm a biology undergrad. I'm glad you have mentioned attempting something computational for my thesis. I'll look into it; the prospect excites me. Same goes to the internship suggestion. Definitely something to think about.
- kingly 17y agoThanks for the comments :)