Live data from Hacker News

Learning to Hack: the Tipping Point

zapier.com

11–20 of 29 posts

Re: Learning to Hack: the Tipping Point

#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 things, really. After a lot of work I built a Befunge interpreter (probably my own "tipping point"). And many useless puzzles later, I somehow wound up a genuine computer scientist.

People always talk about "getting things done". I just worked on meaningless puzzles, and that was the best thing I could have done. Anecdotally, to me it was about achievements and challenges. If you grow tired of the drive to "get things done", make something pointless.

Re: Learning to Hack: the Tipping Point

#12

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…

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 see what they started with, then roll forwards and watch them work)

The second thing is that programming is a lot like maths, in that learning it in and of itself is pretty dull. Having something that you want to do, with programming being the tool that you apply to help you get there, is a lot more motivating (and seems to be the tipping point experienced in the article)

Re: Learning to Hack: the Tipping Point

#13

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've taken the exact same approach through the years as I've gradually started working on more complex projects. So, it's sort of comforting knowing that I'm not alone in the "just get something working, no matter how ugly/bad it is" camp. This sort of mentality, no matter how good/bad, was really helpful because it forced me to take a look at what I had made objectively, as I began to look back on old code/projects I wrote and finally ssee not only how "ugly" it was, but more importantly, why it was ugly.

I'd then move on to a more challenging project, proceed to find some horrific, hacky solution, then talk and show it to people smarter than me and who could point out better ways to do things. I think if you're able to look at things you've made from years back and say "wow, I was a much worse programmer then, for these reasons", that says a lot about how much you've learned so far.

Re: Learning to Hack: the Tipping Point

#14

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…

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 little choose-your-own-adventure game. It started as a slightly modified "Hello, world!". As I learned about more complex things, from loops to functions and packages, to objects and classes, I've found ways to complicate the program by adding in the things I've learned. Now I have a couple thousand lines of code (bloated, I'm sure!) and a little game that, at the least, has a wee bit of depth beyond "enter your name:". But at the end of the day, it's some code in a text editor. I could spend more and more time adding more and more code, but it's still a command-line executed script. How do you make it "software" if you get my meaning?

There are other examples: I've been using python to learn to play with data, with some success. I can get data in, manipulate it a bit, and spit it back out. Great. But how would I automate that, drawing a file in from a folder automatically, manipulating the data according to my python code, then ejecting it onto a webpage into some graphing package. I know that isn't a complicated procedure (it's essentially a transfer of data), but I don't even know where to start.

Or you mention Github. While I know what it is (sort of), I have no idea how it works or why people use it,outside of sharing code. APIs? I know that they're a way to transfer data between pieces of software. But I don't know the first thing about how I'd use, say, the Twitter API, even to mess around for practice, by adding some extremely basic functionality to my "game".

This probably sounds ridiculous to people with experience. But I'm living it. I guess I feel like I've done enough programming 101 and am ready to see what 102 is all about. To me that's not "learn another language", it's "how do I turn code in a text editor into something". There don't seem to be many resources that cover the subject. That's the epiphany I'm waiting for.

It seems the answer is to define a small project, specifically, then set about doing it, with Google as your friend.

Re: Learning to Hack: the Tipping Point

#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 rewarded with some self confidence when it worked.
That's the tipping point the OP was talking about I think.

Re: Learning to Hack: the Tipping Point

#16
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…

OP here: exactly what I meant.

Re: Learning to Hack: the Tipping Point

#17

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…

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://manning.com/briggs/

It's essentially completely ass-backwards if you're used to traditional programming books, in that you don't learn everything about Python up front. Instead, it's a bunch of small-ish practical projects, and you learn as you go.

Chapter 6 is an adventure game, and chapter 10 turns it into an networked MUD via twisted - it sounds like what you're trying to do. But there's also business stuff - csv parsing, etc. - an asteroids clone, writing a web app in Django and so on.

Re: Learning to Hack: the Tipping Point

#18

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…

>"There's really not much difference between a script and a program, other than size/features."

Saying so is the luxury of having reached the tipping point!

You sold a copy of your book, so plug justified. It looks interesting. Hopefully it can fill in a few gaps. Thanks.

Re: Learning to Hack: the Tipping Point

#19

Earlier quoted context omitted.

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…

> "There's really not much difference between a script and a program, other than size/features." Saying so is the luxury of having reached the tipping point! You sold a copy of your book, so plug justified. It looks interesting. Hopefully it can fill in a few gaps. Thanks.

Cool! :)

Don't forget that there's an author forum if you get stuck and need a hand. I check in every day or two.

Re: Learning to Hack: the Tipping Point

#20

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…

It also depends on what you want to get out of programming. From a pragmatic perspective:

One option is to look at code that's embedded into other platforms. You talk about data analysis. Perhaps try looking at OpenOffice (which I know has Python bindings). Import your data and get OO to do the heavy lifting of creating the graphs.

Remember: The whole point of programming is that you get shit done by giving a general purpose system specific instructions to carry out.

For large parts of the "Build an application" questions you have. It depends on the tool you use. If you're building an iOS app -- XCode includes Interface Builder (which lets you drag and drop GUI objects and link parts of your code to them). If you started coding in something like Visual Basic you'd have the same thing. These sort of tools make it easy because the design a gui and package the app are all baked in. A Web example is probably PHP. For Python you can look at tools like pyGame or wxWidgets

Post reply on HN