Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I also think that the "use a third party library" mentality can, but not always, cripple programmers.

I've almost always written something that has less features/worse code/more bugs than a library that would have been a perfect fit. And I did it intentionally.

Why?

Because I learned something new. I've written my own C++ DirectX game library... then went out and used HGE/Goblin 2D. It made me a better programmer because I understood why the design decisions were made because I had similar problems when doing it myself.

I've written my own PHP framework. Why? Same freaking reason. I can look at similar frameworks, CakePHP/Django and quite literally see what it was they were doing under the covers without looking at the source because I've solved the same problem myself.

In the event that there isn't a third party library out there that does what you want, the programmer who is accustomed to look for those first will be screwed. They've never had to make a large system by themselves and they don't understand ahead of time what types of problems they'll run into because they've used other frameworks that have prevented them from making those mistakes.

tl;dr; Using a framework just because its there is similar to a parent coddling a child. When its time to enter the real world they simply won't be ready.

The anecdote here, I believe, is knowing when doing it yourself is a great learning experience, vs a COMPLETE waste of time. Always doing it yourself is stupid, but never doing it yourself is the easy way out.



It's worth noting that your learning experiences and experiments don't need to become production applications, though. This is what gets many people into trouble.


Not being able to write your own code to deploy into a production environment won't get you very far as a software developer.

Merely my $0.02.


But unless you're a web host or something, you are not being paid to write web servers. In the limited amount of time you have to solve your business's actual problem, do you want to learn the ins and outs of HTTP, or do you want to learn the ins and outs of the actual problem you are trying to solve?


This is an extreme example of my previous point: when is it a good choice to learn vs a complete waste of time.

I don't think anyone would write a web server unless they were in that business. But if they were, they wouldn't simply pick up Apache just because they can.

There are always at least two correct sides to every argument.


deploying is one of those cornerstones that you need to get right once, right at the beginning. #twitter


You are not Twitter.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: