[Cialug] Hello and can I get some recommendations

Tim Champion timchampion at gmail.com
Tue Apr 12 11:57:59 CDT 2011


I have to chime in here.  I went to college for programming (Computer
Science at Northwest Missouri State Univ).  I already knew the fundamentals
of programming before I went, so I wasn't starting from scratch.   Our
learning language was called Modula-2, which is a very close relative to
Pascal.  All the data structures classes were in it.  We also had many other
languages we learned, and I got a good, broad base of languages.  So, I feel
that knowing the concepts are most important, and each language's syntax is
almost secondary.  I was able to get some good real-world experience doing
Y2k updates in COBOL for an insurance company.  I had never done COBOL
before, and they were shocked when they found out that I hadn't ever touched
it before, because I had absolutely no problems picking it up on-the-fly,
and fixing stuff with very little hand-holding.

I firmly believe that the syntax of each language is not so important, but
understanding the concepts of the different language families is.

Now, let me tell you one huge regret I have from my college days, and that
was not taking the (elective) class on Object Oriented programming.  I think
it was Java, but this was 1994, so I don't remember which language it was.
Consequently, my brain only thinks in procedural programming methodologies,
and I'm too set in my ways now to learn to think in an object-oriented way.


So, my suggestion is this.  Learn C (or a C based language).  Learning C is
like learning Latin.  Many other (and popular) languages are based on
that.   Also, maybe at the same time, but at least right after learning C -
is to learn a pure object oriented language, like Java for example.   Most
programming jobs are in OO languages.  Once you have a good, fundamental
understanding, try and get some real-world experience in any way you can.
volunteer, offer to work for minimum wage, whatever you can do to get some
real work on your resume.  Then try and step-up from there.  I have found
that its easier to climb the wage-ladder by finding a completely new job at
a different company, but that's just me.  I've done pretty well for not
completing that degree, but it sure would have been easier if I had taken
that OO class, and completed the degree.

Tim Champion
timchampion at gmail.com


On Tue, Apr 12, 2011 at 11:04 AM, Josh More
<MoreJ at alliancetechnologies.net>wrote:

>  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
> 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> 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
>
>
> _______________________________________________
> Cialug mailing list
> Cialug at cialug.org
> http://cialug.org/mailman/listinfo/cialug
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cialug.org/pipermail/cialug/attachments/20110412/90aada68/attachment.html>


More information about the Cialug mailing list