[Cialug] Hello and can I get some recommendations

Josh More MoreJ at alliancetechnologies.net
Tue Apr 12 11:04:32 CDT 2011


My advice is pretty simple:

1) Learn one language.
2) Learn it well.
3) Avoid learning any other language until #1 and #2 are handled.*

My one-language-to-rule-them-all was Perl.  It informs everything I do because I learned it really really well.  It makes it easier to learn other languages because I have a firm grounding in Perl.  You can do the same with Python, Java, Ruby, etc.

The hardest part is #3.  I can't tell you how many truly crappy programmers I've met that know over 20 languages, but don't know any of them very well at all.  Being able to code crap in any language will get you hired, but won't let you advance very far.

>From an IDE perspective, I recommend just using a text editor for your first language.  IDEs are good for fast development, but they are good because they abstract away some of the fundamental aspects of how the language actually works.  Until you know a language well (#2), an IDE will hinder your learning, not help it.





Josh More | Senior Security Consultant - CISSP, GIAC-GSLC Gold, GIAC-GCIH
Alliance Technologies | www.AllianceTechnologies.net<http://www.AllianceTechnologies.net>
400 Locust St., Suite 840 | Des Moines, IA 50309
515.245.7701 | 888.387.5670 x7701

Blog: Don't just blame the bad guys, it's your fault too
http://www.alliancetechnologies.net/blogs/morej

How are we doing? Let us know here:
http://www.alliancetechnologies.net/forms/alliance-technologies-feedback-survey
________________________________
From: cialug-bounces at cialug.org [cialug-bounces at cialug.org] on behalf of Matthew Nuzum [newz at bearfruit.org]
Sent: Tuesday, April 12, 2011 09:48
To: Central Iowa Linux Users Group
Subject: Re: [Cialug] Hello and can I get some recommendations

On Mon, Apr 11, 2011 at 10:18 PM, Eric Junker <eric at eric.nu<mailto:eric at eric.nu>> wrote:
As much as I love Python, Ruby and PHP I would have to say that that vast majority of programming jobs are going to be in Java or .NET. So if your goal is to be able to easily find a job you may want to consider Java or .NET. I honestly haven't seen that many Python or Ruby open positions, especially in Iowa.


A problem with this argument for Java and .Net is that many of these jobs require someone with an undergraduate degree in computer science. The nice thing about the open source languages is that freelance work abounds. Please correct me if I'm wrong.

C# is an awesome language. Not my first choice for Linux work, but a great language to develop in. Also, the Visual Studio Express environment is an excellent tool.

However, I think learning C# and Java have a higher barrier to entry than the other three mentioned. The reason is because you have to understand the data types and you also must use object oriented principals right off the bat. Both are good things to learn but I think the procedural style of programming is easier to grasp at first. Similarly, I wouldn't teach someone TDD on their first day writing a program, no matter how awesome it would be for a person to develop that as a habit early on.

I think people learn better when it's fun and producing working code and seeing your ideas come to shape is one of the most fun things about programming.

On that same note, to respond to j.bengtson, an IDE is one more thing to learn. The Python console, irb or http://tryruby.org/ and firebug are awesome tools to making writing code simpler. I've never seen a _simple_ ide and one of the chief principles of making software easier to use is to reduce the interface as much as possible. Eclipse is very likely one of the worst tools I've ever used in the context of "pleasant and inviting user interfaces."

And, to open one more can of flames, I don't suggest PHP any more because the amount of bad documentation on the web and in print is astounding. You will very likely have to unlearn bad habits in order to write code that is not trivially hacked. You can write good php apps but, like C, one of PHP's "features" is that it is happy to give programmers the ability to resoundingly shoot themselves in the foot and it takes careful effort to avoid doing so. It's just not as fun learning when there's warning labels attached to everything. The way to get around this is to start out with a PHP framework that has a good track record for taking security seriously. (I suggest Wordpress for that)

--
Matthew Nuzum
newz2000 on freenode, skype, linkedin and twitter

"My aim has always been to get to the truth rather than to support some
position. And in criticizing others, I have always tried to understand what their
position was and not to misrepresent it. I have never been interested in cheap
victories." -Ronald Coase

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cialug.org/pipermail/cialug/attachments/20110412/167d65a6/attachment-0001.html>


More information about the Cialug mailing list