Live data from Hacker News

Learning to Hack: the Tipping Point

zapier.com

21–29 of 29 posts

Re: Learning to Hack: the Tipping Point

#21
post #4

I remember learning to code in Game Maker a while back, so each time I had an end goal in mind: the game I want make. In that time, I made 8-10 crap games, but each time I would code, I would more and more swap out the pre-build code actions with actual code as the complexity of the games increased. Besides the fun of making games, it was great discovering the underlying code, even if it is something as rudimentary a…

Wow! This is how I learned to code too! I remember when I around 12-13, I wanted to figure out how to make my own message box in Windows (yes, I was weird). But I didn't know there was such a thing as "programming". In fact, I had no idea how software was made. Eventually I stumbled upon Game Maker -- I think it was at version 4 when I found it. So I began creating little games with that cheeseburger icon and snowmen…

Wow.Straight from Game Maker to C? Sort of happened the same to me. Up until uni I only knew Java, Game Maker and basic PHP/MySQL then started with C in freshman year. Although I mostly do web development these days, I liked working with pointers and memory management in C (once again delving down deeper).

Re: Learning to Hack: the Tipping Point

#22

As someone with an interest in the programming world, I'm slowly "learning to code". I don't intend on ever developing in any occupational capacity. I'd just like to be able to have both a better understanding of what goes on under the hood, as well as be able to cobble together tools. But I'm having trouble finding my own tipping point. I've worked through tutorials, online classes and introductory texts. Most of th…

I am 35+. Never coded myself except for small feats in HTML/CSS. Background - corporate finance.

It's difficult to learn from scratch, but it is not that difficult.

If your goal is web development, then I would point several key things that worked for me:

1. Don't be afraid to start and try it out.

2. Knowledge builds by iterations.

3. If you stumble - make a break, then get back to the stumbling block. Most of the times it will be solved fast.

4. Keep your end in mind.

5. Do some practical project, that has value for you.

About me:

- punched with HTML/CSS; hand programmed simple static site;

- got aquainted with Drupal; digged into Drupal; installed on hosting, installed and played with some modules, played with changing themes;

- started Django - Django book, tutorials, various books - stumbled;

- read through Learning Python by Mark Lutz, did exercieses - stumbled after 60-70% [decorators, etc];

- returned to Django, continued with books & simple projects - needed to get static assets working -> had to install webserver, did not want Apache, so I tried nginx - stumbled;

- got VPS from Linode - but needed to know a bit CLI and Ubuntu nix, since server is headless; stubmled - went through CLI tutorials;

- at the same time when installing web server stumbled with DNS, had no clue how it works, stubled - so digged through wiki, blogs, etc to understand the basics;

- with CLI and DNS basics under my belt, started setting up VPS - some packages in Ubuntu repositories were old and security risk - installed from PPA, but had to compile nginx, postgres, some other packages;

- installed!;

- in one week the whole set up was hacked;

- went through too many tutorials on nix hardening; iptables; auditing tools ; honeypots; logging local and remote; server monitoring [Graphyte and friends]; rootkit detectors, etc

- now back to Django...

In the background I digged a little bit into - databases [postgres, mongo, redis]; js [charts, various other libs]; some Python libs [requests, Pygments, etc]; OLAP/BI and host of other things.

That is a short summary w/o too many details.

It is a lot of fun - don't limit yourself. Your fears are your first enemy. So just do it.

Re: Learning to Hack: the Tipping Point

#23
post #15
post #11

I think the way that one learns to program says a lot about the programmer. I, like many people, started with games and websites, but although I understood conditionals and loops, and even glimpsed OO, I wasn't very good. My software sucked, I got bored of it, I slowed to a stall. A couple of years later I picked up Python, and instead of trying to make games or websites, I worked on stupid little puzzles. Pointless…

The "thing" in getting things done is fuzzy. For you it was a "meaningless" puzzle. For me it was an implementation of Conway's game of life. For others it was modifying their wordpress blog or making automating their financial tracking. The point is there is something you want to do and you used a programming lanaguage to do it. As a result: * You were self guided not following someone elses steps. * You were reward…

I suppose what I'm trying to say is that for me it wasn't that there was "something I wanted to do and I used a programming language", but rather that I wanted to use a programming language so I found something to do. For me it was about the (self-guided) achievements and challenges: I wasn't "hacking a way to a solution," and would often return to the same problem and solve it again and again, never "falling back to really hacky solutions to get things done." It's a bit fuzzy (things do get done either way), but I think there is a distinction in approach.

Re: Learning to Hack: the Tipping Point

#24

Earlier quoted context omitted.

Appreciate the responses. Keep in mind this comes from a guy with no programming background. I suppose I'm finding it easier to get exposure to the science , but not the art . Or maybe a better way to put it is, writing code is one thing, but making software seems completely out there to me. I was a big fan of MUDs as a younger guy, so as a practice project as I work through texts and tutorials I've been building a l…

There's really not much difference between a script and a program, other than size/features. A program just has a few more added :) It perhaps seems like there's some extra sauce if you're looking in from the outside, but it's really just a case of iterating, adding stuff and polishing the "out of the box" experience. Minor plug - I actually wrote a book which I think follows the pattern that you're looking for: http…

The book looks awesome, thanks a lot for the link!

Just yesterday, I started teaching my co-founder how to code in python, and wanted to very quickly get to something useful to give him inspiration to keep going.

I ended up starting with the python interpreter for ~30 min, followed by writing a very short program to show a random inspirational quote on the command line, and then turned it into a module so we could import it back in the interpreter. The end goal was to show how programs get built up from smaller pieces and can become more and more complex.

I think he really started to get it once we added a few test functions to test the different range of inputs to his "get_quote" function.

Next time, I'm going to show him Django via simple demo site and hopefully he'll be at the point where he can start editing HTML. (I'll either use https://github.com/mpdaugherty/django-demo-project, which displays quotes and demonstrates views and templates, or https://github.com/mpdaugherty/RateBeers, which rates beers and adds in some DB models, depending on how far he gets).

Re: Learning to Hack: the Tipping Point

#25

Earlier quoted context omitted.

Two things: It definitely helps to have some sort of scaffolding or small seed program to help get you started. If you're looking at other people's projects you don't see all of the small choices and decisions that they made, just the final product. That always seems a lot more complex and intimidating than whatever it is you're currently working on. (If they're on github, you can sometimes go back to revision 1 and…

Appreciate the responses. Keep in mind this comes from a guy with no programming background. I suppose I'm finding it easier to get exposure to the science , but not the art . Or maybe a better way to put it is, writing code is one thing, but making software seems completely out there to me. I was a big fan of MUDs as a younger guy, so as a practice project as I work through texts and tutorials I've been building a l…

Dude. Honestly, you have all the tools that you need to be fairly good at coding. I can already tell.

long post

What you're really fearing is the unknown, so think of it this way...

Coding is a bunch of logical expressions thrown in to essentially one lump which ends up making a computer do a bunch of things. That's basically it. Now we have patterns, best practices, algorithms, classes, etc., but those can be learned as you go. Don't worry about it, you have all the tools.

How do I know?

You were able to make a post on HN. That is, your mind has mastered (to some extent) the coupling of language and logic.

You already know logic... Your sentence structures have the basics going [subject verb object]. You know that in most cases, your sentence will not make sense if you omit any part of the basics. Same with a program. If you omit something in the logical arrangement, your program will not work.

--------- You already know flow... Your post goes from the top down. A lot of programs does that. That is, the tasks are processed from the top of the program until you get to the end. Now, we do skip around, but that's because during the flow from top to bottom we call other functions for help. Think of functions as an extension of the flow (just in another location) and you'll get what I'm talking about.

   Now we do have events as well. Think of when you're clicking a button, something happens. In that something, it also uses a top down approach. 
--------- You already know conditions... You've created basic guidelines for getting your paragraphs to work to your liking. I've noticed a few if/else conditions that you're using... 1) IF I explain this part of my coding history THEN the readers will realize how badly I want guidance help... 2) IF I use a general/cliched phrase THEN I'll put quotations around it (e.g. "Hello, world!" or "how do I turn code in a text editor into something" ELSE no quotes will be added around the word/phrase

--------- You already know abstraction... Your using paragraphs to abstract topics/themes to be separate from one another. In CS we use functions and classes.

--------- You already know how to utilize classes... You're using a combination of letters to form what we call words. With those words, you have created sentence. Your mind has already figured out that if you utilize these words and sentences in a certain order, it will return something useful.

--------- Now why did I go through all of this to convince you that you know more that what you think? Because I'm insane. No, that's not it. I hear a lot of people say that they aren't smart enough to code. Yet, these same people can memorize entire albums and television episodes. Memorization uses a lot of CS tools if you think about it. You're using logic, flow, conditions, abstractions, classes, etc. You just don't know that you're doing it.

I have a friend that, for the past 3 years, explained to me that he wasn't smart enough to code. I ended up giving him a run down of all the basic things needed to make a basic web app. It confused him, but it gave him exposure.

After a couple of months He called me and said he had a "great" idea for a site for his wife. He spent about a month working on it before I took a look at it. The site was functional. It wasn't great, but it was functional and dynamic. I gave him some pointers, but a lot of the work came from him seeing what he wanted to do and running with it. Yes, with good ol' Google. All he needed was the basic guideline. All he needed was some exposure.

I think that's all you really want/need. I can help you out if you'd like. Here's my tools... HTML - text and boxes on the page CSS - making things look pretty JavaScript(JQuery) - making things move Asp.net (or PHP) - server back end (mostly a communication tool with the data base) SQL Server (or mySQL) - the database (stores a bunch of data)

That's about it. Those 5 things. You can do a lot of really cool things with that. If you need help, don't be afraid to ask.

Re: Learning to Hack: the Tipping Point

#26

Earlier quoted context omitted.

Two things: It definitely helps to have some sort of scaffolding or small seed program to help get you started. If you're looking at other people's projects you don't see all of the small choices and decisions that they made, just the final product. That always seems a lot more complex and intimidating than whatever it is you're currently working on. (If they're on github, you can sometimes go back to revision 1 and…

Appreciate the responses. Keep in mind this comes from a guy with no programming background. I suppose I'm finding it easier to get exposure to the science , but not the art . Or maybe a better way to put it is, writing code is one thing, but making software seems completely out there to me. I was a big fan of MUDs as a younger guy, so as a practice project as I work through texts and tutorials I've been building a l…

I'm in a similar position to this, except that I really do want to get ton occupational level. My goal is to be employed in web development. I can hack some things together, and I can get through tutorials reasonably easily at this point. Almost all of my code at this point is plagiarized from someone else, then modified to meet my goals. So when is the tipping point when I can start to look for employment? I liked this article, but I'd like to see my question answered as a follow up.

Re: Learning to Hack: the Tipping Point

#27

Earlier quoted context omitted.

Appreciate the responses. Keep in mind this comes from a guy with no programming background. I suppose I'm finding it easier to get exposure to the science , but not the art . Or maybe a better way to put it is, writing code is one thing, but making software seems completely out there to me. I was a big fan of MUDs as a younger guy, so as a practice project as I work through texts and tutorials I've been building a l…

Dude. Honestly, you have all the tools that you need to be fairly good at coding. I can already tell. long post What you're really fearing is the unknown, so think of it this way... Coding is a bunch of logical expressions thrown in to essentially one lump which ends up making a computer do a bunch of things. That's basically it. Now we have patterns, best practices, algorithms, classes, etc., but those can be learne…

>"Dude. Honestly, you have all the tools that you need to be fairly good at coding. I can already tell."

Good to hear!

Like I said --and how the original article struck me-- I'm just waiting for that feeling of getting it. We've all had it. I've felt it with thousands of things in my life, from Calculus to playing Street Fighter 2. Up to this point every introductory text/course says, "Look! You're programming!" and I sort of think, "Am I, really?"

At the end of the day, I realize that learning anything is a function of time, and I certainly haven't paid my dues there yet.

>"All he needed was some exposure."

Another good point, which causes me a bit of internal strife. There's a wealth of information out there. In fact (first world problem alert), there's almost too much. Try typing "learn to program" or "introductory python" into Google. It's exhausting. I'm looking for the next incremental step in this learning process, but both my problem and the solution revolve around defining what it is I'm looking for. But, as you and others have suggested, I think the answer will come from looking at other's code and plugging away.

Thanks for taking the time to reply.

Re: Learning to Hack: the Tipping Point

#28

Earlier quoted context omitted.

Dude. Honestly, you have all the tools that you need to be fairly good at coding. I can already tell. long post What you're really fearing is the unknown, so think of it this way... Coding is a bunch of logical expressions thrown in to essentially one lump which ends up making a computer do a bunch of things. That's basically it. Now we have patterns, best practices, algorithms, classes, etc., but those can be learne…

> "Dude. Honestly, you have all the tools that you need to be fairly good at coding. I can already tell." Good to hear! Like I said --and how the original article struck me-- I'm just waiting for that feeling of getting it . We've all had it. I've felt it with thousands of things in my life, from Calculus to playing Street Fighter 2. Up to this point every introductory text/course says, "Look! You're programming!" an…

Do you really want to program? Send me an email. I'll be your mentor.

Re: Learning to Hack: the Tipping Point

#29

This is something I talk all the time with students that are being taught all the programming classes in college. Most of them know how to program, or at least know the syntax of a language and know basics, but getting to that tipping point of having hacked something up is kinda hard for most people. After you've built that first thing, that isn't the obvious programming exercises found on textbooks, you've passed th…

A lot of people don't like the "discomforts of exploration".

Folks have mentioned that creating solutions to your own problems helps a lot. Well it does, but it takes some out-of-the-box thinking to realize that you do have a problem to solve.

Programming is like using an Erector set. You get a lot of pieces and can place them together quite easily. But when push comes to shove, how many are going to (or willing to) build a baseball launcher so they can avoid "pickling the Beast" (Sandlot reference)?

That's where imagination and subdivision comes in. Yes, you can learn all the theories and syntax that you'd want, but if you don't use your imagination and divide-n-conquer methods, you'll never make it.

Once you'd get past all of that, the sky's the limit. I'm proof of that. I hear of all of these miracle languages and frameworks, but I stick to what I know. Why, because it had solved so many problems before. And its because I have a vivid imagination and know what it takes to get the task completed.

Post reply on HN