ExpressionEngine CMS
Open, Free, Amazing

Thread

This is an archived forum and the content is probably no longer relevant, but is provided here for posterity.

The active forums are here.

Best teaching language

June 05, 2010 10:35am

Subscribe [17]
  • #16 / Jun 29, 2010 1:26am

    John_Betong

    690 posts

    Unless times have changed then Pascal is the way to go 😊

    Pascal:
    It was designed to teach programming techiques and topics to college students and was the language of choice to do so from the late 1960’s to the late 1980’s.

     
    http://groups.engin.umd.umich.edu/CIS/course.des/cis400/pascal/pascal.html

     
     
     

  • #17 / Jun 30, 2010 10:12am

    BrianL

    35 posts

    I found this link while I was learning PHP:

    http://www.odi.ch/prog/design/php/index.php

    Summary: using PHP as a learning tool or your first language is a bad idea.

    The best language to learn to start is probably Java, for three main reasons.

    1. It is a true object oriented language. Don’t listen to old guys who say that object oriented programming is wrong, a fad or for bad programmers (at least not yet). 90% of software engineering jobs out there require object oriented programming, and corporations use object oriented programming to increase productivity (or if you are cynical to limit the amount of damage junior developers can do). So if you are just starting you want a real object oriented language, not something with ad hoc support like PHP.

    2. You are interested in general programming theory which Java supports built-in. For example, Java has many built-in data structures. Design patterns are *the* domain of Java. There are two main textbooks that teach you design patterns; the first being Design Patterns: Elements of Reusable Object-Oriented Software with examples in C++. The second is Head First Design Patterns, examples in Java. The first textbook is the definitive textbook about design patterns, but it’s quite dated and C++ is a difficult language to learn. Meanwhile Java is much more accessible, and the Head First book is incredible and you can get through it in a few weeks if you’re a beginner or a day if you’re a comp sci major.

    3. There is a natural progression from Java to C#. .NET probably makes up 90% of entry level jobs out there, and C# has been called a “Java ripoff.” Java has natural transitions to C#, JavaScript (the only client-side scripting language that has gained widespread acceptance and practically a must) and GUI design through Swing and SWT. Out of the “big three” Internet languages (C#, PHP, Java), Java is the best choice since once you know Java you can master all three of them.

    4. You do not want to be worrying about low level issues like garbage collection and cross platform compatibility with your first language.

    So if you are just learning programming I suggest you get Head First Design Patterns immediately, being the seminal entry level textbook, followed by online resources about Java data structures (this is assuming you have spent some time learning the Java syntax and object oriented programming principles in general). One word of warning: some Java developers fall in love with Java and spend years on Java and know only Java. This is not a good idea unless you want to compete with 8 dollar an hour Java coders from India. I would spend six months to one year maximum on my first programming language, then immediately learn several more. The whole point of the first one is to form a foundation for learning many more, and Java can get you there the fastest.

  • #18 / Jun 30, 2010 2:26pm

    Wario

    4 posts

    I found this link while I was learning PHP:

    http://www.odi.ch/prog/design/php/index.php

    Summary: using PHP as a learning tool or your first language is a bad idea…

    ...

    So if you are just learning programming I suggest you get Head First Design Patterns immediately, being the seminal entry level textbook, followed by online resources about Java data structures (this is assuming you have spent some time learning the Java syntax and object oriented programming principles in general). One word of warning: some Java developers fall in love with Java and spend years on Java and know only Java. This is not a good idea unless you want to compete with 8 dollar an hour Java coders from India. I would spend six months to one year maximum on my first programming language, then immediately learn several more. The whole point of the first one is to form a foundation for learning many more, and Java can get you there the fastest.

    So do you think that article about PHP still holds true today?

    My first “Language” was ActionScript of things.  I had a little bit of knowledge of HTML, CSS, JavaScript, and some SQL from college, but ended up moving out of state and abandoned it.  I picked it up again about 6 months ago (which was 5 years after college) when I realized I still had a strong desire for learning Wed Dev and not just design. And I began studying PHP about 2 months ago after facing the fact that Flash is not a good for a foundation for anything Web Dev. It’s really fun and interactive, but not needed and not always supported.

    PHP clicked very well for me, especially since I had already been introduced to OOP and MVC while I was learning ActionScript, but those concepts didn’t really solidify until I was well immersed into PHP fundamentals.  I love the language and see much promise in it.  Although I’m not that experienced, it seems like with direction it’s going that PHP can hold it’s own against other languages like Java, or RoR.

    All this to say, at what point, as unexperienced and aspiring programmer, do you go back and learn a “foundation” language like Java or C?  Is it worth stopping where you are and investing another 3-6 months learning Java first before I make a semi-simple web app?  If I’m learning CI, and participating in the PHP community and in forums, is that strong enough to carry me through truly learning the concepts needed to be a good programmer? I don’t plan to isolate myself and work alone.

  • #19 / Jun 30, 2010 2:49pm

    BrianL

    35 posts

    No it’s never worth stopping if only so you can say you have x years experience in a language in a job interview 😉.

    I would not stop PHP if I was where you were. I would however read articles like this
    http://www.ibm.com/developerworks/opensource/library/os-php-designptrns/

    You’re right, much of what that article says is not true now. For example, you’re using CI so presentation and business logic is obviously separated. But small, annoying parts are still true to the point I would not recommend it as a “first” language or “foundation” language. PHP6 will have built in support for unicode and remove other nasty issues for example. But there is one more issue to be aware of. That is everyone hates Microsoft but you really can’t live without it as a web developer, unless you’re going to become a hardcore PHP developer who works only in open source shops. In other words, for most of my friends .NET brings bread to the table while PHP is one line on their resume. These are hardcore comp sci guys who are real web developers and not designers. So I would not give up PHP, but at the same time I would get Visual Web Developer Express free version immediately if I were you especially since .NET 4 just came out, and a good book. Or don’t get the book and just watch the free videos on the Microsoft site that can get a project up and running in a day since you want something out immediately. So in one year maximum if I were you I could say I was a PHP guru but also a C# guru and not limit my options in terms of work. Why know one when you can know two 😉.

  • #20 / Jun 30, 2010 3:02pm

    anonymous41542

    436 posts

    @Wario

    While the article is indeed very dated, the other stuff he said is very true. I learned PHP pretty much like you and only later discover what I was missing out on. I learned Java and while I thought it was very strickt and felt it held me back. In the end I learned to appreciate those boundries, and I learned how much I’d been doing wrong and had been allowed to by PHP.

    There is of course no problem if you’re just writing fun application for yourself and friends. If that’s just what you’re doing there’s nothing wrong with learning by reading code and trial/error. If you plan to handle big amounts of interrelated data, applications with many components and most important privacy sensitive information - you should learn to program right before you start asking money or other people’s personal information.
    I was corrected at university by learning about OO programming with Java and complex datastructures. And I bought a couple of books about object oriented programming in PHP, security with PHP and about patterns in general. But in the end I’m still “unlearning” some of the bad practices I thought myself.

    And to get back to the article about PHP4: some of it’s points are still valid. PHP was developed from a far smaller ambition then it has become. And because it still maintains backwards compatibility to many PHP4 and even PHP3 stuff some of it’s implementations are lacking. The OO implementation has be hugely improved in PHP5 though.
    But to name some examples of bad PHP practices that teach starters the wrong lessons: it’s incredibly inconsistent in it’s function names. There’s str_replace() and strpos() (one with and one without underscore, and one fully written and one abbreviated). And there are many more such examples of inconsistency which show the language’s youth.

    That’s not to say PHP is a bad language in any way. I love it and as mentioned before I would recommend it to anyone. But I would also recommend anyone to learn good programming either while learning PHP or before. And a language like Java is a good place to start when you want to learn some good practices before using PHP.

  • #21 / Jun 30, 2010 5:10pm

    Wario

    4 posts

    Very good points here…

    So the consensus for programming for the web, such as small to medium sized web apps like some kind of themed knowledge base or forum, would that still be Java, or would Ruby be a better choice to build a foundation?

    PHP-wise I learned beyond the basics and best practices of PHP5.3 through solid, professional online tutorials, to the point were the course took me through building a mini-framework, many using OOP and includes and requires.  I didn’t just go off on my own, so I don’t believe my programming tendencies are tainted, I just feel like they’re lacking.  I been reading PHP and MySQL Web Development, Fourth Edition and that goes pretty deep into everything that’s related to PHP and MySQL like server security, protocols, things I wasn’t even concerned with at the moment but will need later.  I think I’m trying to figure out what would be the best complement language to PHP, or what PHP could help with.

  • #22 / Jun 30, 2010 6:43pm

    anonymous41542

    436 posts

    Don’t dismiss PHP too easily for large to enormous projects, Facebook is build with PHP and I would consider that a very large and complex application. But when you need to accomodate such enormous things there’s more things of importance then just the language, which will be pretty much the same hurdles for each language. Facebook has solved the PHP-specific problems by extending PHP and related modules themselves: here’s some more on that and another one.

    [EDIT] Also when talking to some guys way bigger then me I asked them why C# and not PHP for instance. The answer was pretty much always that there’s more libraries and extentions available for those (commercially). And also that you need to speed things up for larger use (like Facebook has done) using another language. If they’re gonna use another language anyway they’d just as well use that one for the entire project.

  • #23 / Jun 30, 2010 7:22pm

    stuffradio

    378 posts

    Even though I don’t like it as much, I’d almost go with Java. Reason? It’s much more strict than most other languages. It helps you to learn good habits.

  • #24 / Jul 01, 2010 12:14pm

    coderanger

    3 posts

    i think better learn Javascript rather than PHP. and still better learn C rather than JAVA (J2SE).
    but the most important things you better learn SQL too. and after that go to VB and you will enjoy your life as a programmer ^_^

  • #25 / Jul 01, 2010 1:33pm

    stuffradio

    378 posts

    i think better learn Javascript rather than PHP. and still better learn C rather than JAVA (J2SE).
    but the most important things you better learn SQL too. and after that go to VB and you will enjoy your life as a programmer ^_^

    Learning Javascript instead of PHP makes no sense. It’s not even remotely the same type of language in terms of what it can do.

  • #26 / Jul 01, 2010 1:50pm

    danmontgomery

    1802 posts

    Someone recommending VB? Is this bizarro world?

  • #27 / Jul 01, 2010 2:44pm

    WanWizard

    4475 posts

    Too much blowing (on the vuvuzela). VB = Very Bad!

  • #28 / Jul 01, 2010 3:30pm

    anonymous41542

    436 posts

    coderanger’s post is so much over the top that he’s either joking or trolling, either way: don’t bite.

  • #29 / Jul 01, 2010 8:21pm

    BrianL

    35 posts

    either joking or trolling

    Heh if this wasn’t a PHP framework forum he could have been for real. There are people who think javascript, vbscript, SQL, VB .NET and a little C is enough. Such people have been unemployed since 2008 but hey, I’m not one to judge 😉

  • #30 / Jul 01, 2010 10:59pm

    pbreit

    206 posts

    I don’t think it’s the greatest advice but I will say 1) JavaScript is moderately interesting because it has that key attribute that it is “fun” (ie, you can easily create interesting things)(if VB were still around, I would say the same thing) and 2) C is interesting because it still has the best learning book: Kernigan & Ritchie…short and sweet.

.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases