Open Side Menu Go to the Top
Register
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** ** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

09-07-2012 , 05:46 PM
Quote:
After this, it will be a choice between learning assembly or working through Introduction to Algorithms. Perhaps a combination of both.
Make sure to also check out the "Algorithm Design Manual" I have it on my shelve bookmarked for detailed reading on my next timeslot.

Quote:
For assembly, make sure to learn it in the context of computer architecture.
+1, maybe OS development. Maybe develop your own OS for Raspberry Pi. Iirc correctly ARM is fairly clean. x86 assembly in an OSdev context is no fun
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 06:03 PM
Quote:
Originally Posted by jjshabado
Just curious - of the developers here, who doesn't know Git?

I use git everyday but probably only use ~10% of its functionality. I just checked and the only git commands in my history are: init, clone, push, pull, branch, checkout, merge, stash, apply, commit, reset.

This seems to cover all my use cases, but I'm sure I'm missing out on some awesome features. What else do you guys use that you think is useful to learn?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 06:42 PM
By the way when I said know git, I meant in using it as a developer.

I've used it to pull code from a project to build, which means I've used precisely that one command. But I don't count that as actually using it or knowing how to use it. I certainly know nothing of how it's structured or used, apart from generalities I've read about.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-07-2012 , 11:25 PM
Quote:
Originally Posted by jjshabado
Just curious - of the developers here, who doesn't know Git?
What counts as being a developer?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 06:24 AM
I'm finishing my 2year at a community college satellite campus of oregon state this term. Was wondering if these two links both look like proper degrees:
http://catalog.oregonstate.edu/MinorDetail.aspx?id=375
http://catalog.oregonstate.edu/Optio...34&majorid=139
First I saw the second link and thought I wasted 2 years because 99% of the courses in that list are CS or math or physics. I just now found the first link and is that a proper degree in computer science?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 06:35 AM
Now I see whats going on. So how does a major in business + minor in computer science look on a resume for a programming job?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 10:17 AM
Quote:
Originally Posted by gaming_mouse
I could go on and on about this. These guys are legit nerd cool in a way that no longer exists. Not the modern bull**** hipster buddy holly glasses i play in a band on the weekends nerd cool, but real nerd cool. As in, these guys were huge ****ing nerds. And it is so cool.
I have to admit when they related procedures to writing spells I had a nerdgasm. I never really made that relation before but now that I know I have a spell book (library) of spells (functions) it's the most amazing feeling ever.

I've always been pretty passionate about programming but making this relation kicks it up a notch to levels I didn't know existed. All I want to do now is write spells and cast them 20 hours a day.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 10:20 AM
Quote:
Originally Posted by sdturner02
What counts as being a developer?
I wasn't being super precise in either sense. I just meant of the people that want to set up a development environment for non-trivial work (so lets not count someone trying to learn how to program) I would expect a large number of them to know enough about git to do what shoe was describing (pulling down a repo for a plugin).
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 10:25 AM
Quote:
Originally Posted by Ryanb9
Now I see whats going on. So how does a major in business + minor in computer science look on a resume for a programming job?
Depends on a lot of other stuff. If the only part of your resume related to programming is your minor in computer science - most people will discount it.

All things being equal with respect to the rest of a resume I'm probably going with someone that majored in CS over the business + minor in CS. Its definitely great when programmers understand business concerns but I don't know how much a major in business helps with that.

Edit: It might depend on your desired career path. If I were looking for a business candidate I think I would give a huge benefit to a candidate that had a minor in CS. Basically I look at a minor in CS as a huge benefit if you're looking at a career in whatever your major is in. Basic programming skills and knowledge seem highly useful to me.

Last edited by jjshabado; 09-08-2012 at 10:34 AM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 10:46 AM
Quote:
Originally Posted by jjshabado
I just meant of the people that want to set up a development environment for non-trivial work (so lets not count someone trying to learn how to program) I would expect a large number of them to know enough about git to do what shoe was describing (pulling down a repo for a plugin).
I think even beginners would know. You have to make a conscious decision to use vim. If you Google around on the subject of improving vim because you heard it's a good IDE then you'll eventually find plugins and ways to install them.

That's going to lead to at least following a tutorial or 2 on how to use git to clone a repo or even setup your own repo which is a combination of third party repos to offload the work of having to manually update 8 plugins. If you don't go the extra mile to make your own repo you don't really have to learn anything like you mentioned. You just copy the install instructions. The install mechanism doesn't matter, all you care about is enhancing vim.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 11:28 AM
Seeing ShoeLace's perspective on SICP makes me sort of wish I was approaching the book from his perspective. I appreciate, in an educational sense, the ideas of spells and the general nerdiness, but I don't have the background to appreciate how or why the concepts are new or important in the same fashion.

For example, I've learned how to use lots of concepts via the perspective of Scheme, and since Scheme is so minimal, I tend to approach everything I write via the concepts inherent in Scheme, which is essentially, write it myself, ignoring all the "stuff." And by "stuff" i mean, what primitives in the language has the very functionality built in so I don't have to write it myself. For example, Scheme doesn't even have a for loop or any looping construct, so if I want to create a loop I have to create it by hand, and these loops include map, filter, reduce, sort, etc. Sort of like, well, you have this very small set of keywords you can use to create your own stuff, and if you want stuff, you're mostly SOL if you can't write it yourself.

This goes into the perspective that aligns with ShoeLace's general perspective of not using stuff, which experience taught stuff is not a good thing (without judging whether his beliefs are right or wrong).

So, the perspective he can gain is the polar opposite of what I gain: I tend to have to stop myself from writing things and search for something that reflects what I want; he knows what stuff is available, but will have a better understanding of the logic of the stuff he already knows about. In other words, I'm discovering and he's clarifying.

Not sure what you are using, but I use Dr. Racket with the planet neil mod, which allows you to do everything in SICP, like over-ride the keywords and stuff like that. If I knew about Gambit Scheme earlier, I would have probably used it. I'm thinking of using it anyways.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 11:38 AM
I don't if anyone saw this post on hacker news, but I think this is brilliant blog idea:

http://blog.notdot.net/tag/damn-cool-algorithms

Damn Cool Algorithms, where he goes into light explanations of many neat algos that are used to deal with current-day challenges. He also links to the original papers.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 11:49 AM
Quote:
Originally Posted by Ryanb9
Now I see whats going on. So how does a major in business + minor in computer science look on a resume for a programming job?
Tends to look like "too dumb to get a major in CS but tacked it on for job opportunity". Not saying that's my view.

As long as you're good in the CS skills it won't matter all that much. Depends on where you want to work obviously.

daveT: Have you used a non-functional language before/for anything relevant? I have this suspicion that starting with a functional language is better but can't and don't want to prove it in any way. So it would be cool if you're indeed the "started with a functional language" guy so that I can follow your development a bit :P
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 12:07 PM
It's hard to explain what I'm learning with SICP so far. I'm going through 1 lecture + re-reading the material in the book per day. I'm not even done with the 2nd lecture video yet and I stopped to make this post because of how awesome it makes me feel. It's extremely humbling.

Just because someone has programmed for a long time doesn't make them a great programmer. It's very possible to just fall into a habit and never leave it. If you never challenge yourself you never grow.

It's "easy" to write spaghetti code and not care about anything except making the thing work. I wasted years doing this in PHP. All I did was get jobs for people and make their site for them.

In the grand scheme of things, all of those sites were trivial. They were just dealing with data. Take some data and save it (couple form fields) then do stuff with the data that wasn't overly complicated.

I've dealt with 2 non-trivial sites and the code base on both of them ended up being horribad after the system kept being extended and changed over time.

After doing this for a number of years, I dove straight into node.js. My knowledge of JS at the time was not very good so I read a few books on JS and consumed as much as I could from various articles/stackoverflow/etc..

I feel like I really do know JS pretty well now. I know the syntax, how "this" works, prototypes, closures and all that crap but in the end I don't really know how to program.

I feel like so far SICP is teaching me the "how to" and how to actually create systems.

It's like I have years of experience with various tools and know how to use them, but I can't make anything out of them. I'm hoping by the end of SICP and both edx CS courses (I signed up for both to start next month, hopefully around the time I finish SICP) I'll be able to apply everything together.

It's funny daveT. I think at this point you're probably a better programmer than me. The only difference between you and me is I have a lot of years of experience on consuming programming related technology. I know a decent amount about a lot of different things but I'm an expert in none. I know which tools to pick and how to implement them in a fairly basic way.

Edit:
Quote:
Not sure what you are using, but I use Dr. Racket with the planet neil mod, which allows you to do everything in SICP, like over-ride the keywords and stuff like that. If I knew about Gambit Scheme earlier, I would have probably used it. I'm thinking of using it anyways.
I haven't gone too crazy looking for interpreters. I might when the content covered in the book gets more complex. Right now I'm just running mit-scheme with the --edit flag to bring up edwin which allows paren matching and indentation. Dr. Racket looks nice.

Last edited by Shoe Lace; 09-08-2012 at 12:18 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 12:15 PM
Quote:
Originally Posted by clowntable
daveT: Have you used a non-functional language before/for anything relevant? I have this suspicion that starting with a functional language is better but can't and don't want to prove it in any way. So it would be cool if you're indeed the "started with a functional language" guy so that I can follow your development a bit :P
I TA'd a couple of different first year CS courses. One started with Java and one started with Scheme and then shifted to Java for the 2nd half.

It definitely felt like the Scheme students were much more better at important computer science concepts at the end of the year and just as good at Java. Unfortunately, its a poor dataset because the Scheme course was sort of marketed as more advanced/challenging and had a very passionate prof.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 12:18 PM
Shoe, how often have you worked as part of a team of developers?

By far my idea of good programming has been influenced by smart people I worked with on projects. I actually have a hard time believing that any course could teach me these skills in an effective way.

I'd love to go through the SICP lectures I just doubt I end up making time for them.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 12:21 PM
There is zero chance you'll finish SICP within a month. I know that reading and watching the lectures is valuable, but the really good parts are left up to you to discover in the problems in the book. They leave a ton unsaid in the text.

There's been a few blogs out there where people do the entire book. Bill the Lizard blog started in 2009 and he isn't even done yet. The quickest I've seen is about one year. One in particular expressed the same thing I said in the last paragraph.

I doubt that many people can do all of the problems sets, but doing 75% or more is mandatory IMO. There's been a few problem sets that left me pretty dazed after figuring out.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 12:36 PM
@jj
One of the non-trivial sites was with someone else. It's like that limit poker analogy where monkies are flinging poo at each other. That's what the experience felt like to me. We were just doing our thing without paying attention to the consequences.

I follow a few people in the JS community who seem to produce a lot of code and actively work with a team on some projects. I view their source code a lot. Experience will always be good but I refuse to work in a corporate env. and my plate is pretty full for the next 6-9 months (going to be doing those courses + freelance work... definitely going to be full time for both).

Since you went through CS then SICP probably won't be as revolutionary to you as it will be for me. I would still try to fit in the time for at least the lectures.

@daveT,
Oh. That's good in a way. I don't mind dedicating time working on things that interest me. The very first problem sets were pretty good. They were more challenging than expected.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 01:49 PM
Quote:
Originally Posted by clowntable
daveT: Have you used a non-functional language before/for anything relevant? I have this suspicion that starting with a functional language is better but can't and don't want to prove it in any way. So it would be cool if you're indeed the "started with a functional language" guy so that I can follow your development a bit :P
Outside of creating some half-assed marketing tool I use at work, I havent created anything too major. That tool is basically Python + PostgreSQL w/ matplotlib. Honestly, 90% of what I do involves using the database and I haven't done anything amazing with the Python side of things. Assuming I quit working at this place one day, I'll probably release a modified version of the tool to the open source community.

I don't think I "started" with functional programming. The first class I took was in Python, which probably had a much more functional flavor than a class that may focus on imperative programming, but I can't be sure. The second course I took was on databases.

It just so happens that I have spend the majority of my learning time with functional programming a'la Scheme and I am working on my first major project in FP. If you are going to ask me if I am more comfortable with FP, then yes, you can say that, so in that sense I "started" to understand this stuff more using FP than IP, and this probably reflects in how I program in Python.

I think there are simply too many obscure concepts in functional programming for someone who never programmed before. It also doesn't help that functional programming languages just look weird. I also think that imperative programming is in many ways more intuitive than functional programming.

This is "illegal" in FP:

x = 5
x = x + 1

>> x
6

And by extension, this is illegal:

for i in range(6):
print(i)

To make this more "functional", you'd have to write:

Code:
def forLoop(x):
    def innerLoop(begin, end, ans = []):
        if begin == end:
            return ans
        else:
            ans.append(begin)
            return innerLoop(begin + 1, end, ans)
    return innerLoop(0, x)

print(forLoop(9))

>>[0, 1, 2, 3, 4, 5, 6, 7, 8]
Actually, that may not be legal in more pure FP languages, and I can't write a tail-recursive function in Python, so there's no way to express it correctly, but it looks similar to:

Code:
def forLoop(x):
    def innerLoop(begin, end):
        if begin == end:
            return None
        else:
            return ans.append(innerLoop(begin + 1, end, ans))
    return innerLoop(0, x)

print(forLoop(9))
I simply can't see how fussing with this sort of stuff is useful to someone just starting out.

I think due the generally intuitive flavor of imperative programming and the easy and enforced syntax of Python, I would most certainly consider Python the best language to show a total newb. Functional program exists to solve way too many esoteric problems.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 01:50 PM
dave, are you going through the lecture videos + book exercises + the lecture notes on the OCW site too? I realized the lecture notes have a lot of exercises and even has exams and projects too. I didn't know these existed.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 02:08 PM
I'm not doing the Lecture notes or the HW assignments. I'm not using the online helper tool thingy they have either. The book is from circa 1996, so you are getting the latest iteration. I read the first few lecture notes and afaik, they were verbatim to the 1985 lectures, so I didn't see the need to read the lecture notes.

If you transcribe all the material and do the problems in the book, you'll end up with over 1,000 LOC for each chapter.

Call me lazy, but I think watching the videos, lots of transcribing, and doing the problems are plenty enough work.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 02:29 PM
Ok. Some content is starting to get a little in depth. Finished the 2nd video.

The pyramid thing was sort of brain melting. I hope it's covered more in depth in the book (about to read up to that part now).
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 02:41 PM
It's funny daveT. I think at this point you're probably a better programmer than me. The only difference between you and me is I have a lot of years of experience on consuming programming related technology. I know a decent amount about a lot of different things but I'm an expert in none. I know which tools to pick and how to implement them in a fairly basic way.

No way I'm better at this stuff.

If you had to chose someone to build your bathroom, would you chose the person who went to school and learned about all the 50 varieties of hammers and screwdrivers but never used one, or pick the person who has been using some variety of 3 hammers and screwdrivers for the past 5 years?

There's a ton to be said about having theory, but practical use is more important. To take a favorite quote from Barry Gordy's The Last Dragon: "What's the point of learning all that Kung Fu **** if you ain't never gonna use it?"
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 03:04 PM
We can expand on the kung fu analogy.

Person A:
Over 5 years A throws 50,000 punches. All 50,000 punches hit a punching bag. Most punch methods are the same but there are slight deviations but the deviations are an act of randomness and guessing.

Person B:
Over 5 months B studies the art of throwing punches in various different ways from an expert. He sees how different angles of the punch can be useful in certain situations. He practices throwing multiple punches at a mix of punching bags, sparring partners and other tools which are aimed towards improving punch mechanics and knowledge.

I think if both person A and person B end up in a situation where they are put into unknown situations, person B will excel. An unknown situation in this case might be a fight vs 1 or more enemies.

A is going to get overloaded and not really know what to do. He's never encountered anything like this before. He doesn't know how to react to the situation at hand. All he can do is revert to muscle memory and start punching like he does vs his punching bag.

B is going to understand the situation without knowing the situation. He knows where and when a certain type of punch will be most effective based on experience and knowledge. He will be able to create solutions out of situations that may have not ever happened.

Who is going to be better in the end?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-08-2012 , 03:22 PM
I'm sorry, I'm not going to have this argument.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote

      
m