Geekzone: technology news, blogs, forums
Guest
Welcome Guest.
You haven't logged in yet. If you don't have an account you can register now.


View this topic in a long page with up to 500 replies per page Create new topic
1 | 2 | 3 
1080p
1332 posts

Uber Geek
+1 received by user: 152
Inactive user


  #808106 30-Apr-2013 16:46
Send private message

Elpie:
Noodles: 
- PHP is easy to pick up and used in a lot of open source software so it's easy to find examples.


This is probably the best argument around for avoiding teaching PHP. Finding good code is a bit like trying to find the proverbial needle in a haystack. 

Anyway, back to the second question...
I started with GWBasic then PERL. From there it was an easy jump into PHP. 


It sounds like you're saying open source software is low quality.



Elpie
1304 posts

Uber Geek
+1 received by user: 272


  #808158 30-Apr-2013 18:12
Send private message

1080p:
Elpie:
Noodles: 
- PHP is easy to pick up and used in a lot of open source software so it's easy to find examples.


This is probably the best argument around for avoiding teaching PHP. Finding good code is a bit like trying to find the proverbial needle in a haystack. 

Anyway, back to the second question...
I started with GWBasic then PERL. From there it was an easy jump into PHP. 


It sounds like you're saying open source software is low quality.


No, not at all. PHP is very forgiving and, in my experience, going through the code of any PHP-based open source release you are likely to find code that is good, bad, and all ranges in between.  The advantage of being open source is that poor code and vulnerabilities get many eyes across it and (usually) gets fixed. Whether this makes it good as a teaching aid though... not so sure about that. 

TinyTim
1058 posts

Uber Geek
+1 received by user: 167

Trusted

  #808288 30-Apr-2013 22:07
Send private message

Etcman:
Noodles: I think Java is used in universities because it teaches students OOP, but I don't see it used often in the real world. It always annoyed me how universities taught programming (I took a class a couple of years ago), they often taught you about the inner workings of a language and how to implement things like arrays/hash tables/sorting etc, but in the real world you tend to just use what is built into the language (i.e. PHP uses quick sort, so why write your own sorting algo).


I suppose some would argue that university is a place of academics and is not a polytechnic. As a consequence, their intention I guess, is to teach you the subject at its core, rather than what you would likely use in an everyday job. However, knowing the inner workings of a language is more than just getting to know that language better. It's to understand programming at a fundamental level which will aid you in writing your own algorithms (especially helpful if you ever need a modified version of a well known algorithm, say for a performance critical program). Thus, although it seems pointless, it's probably helping you more than you realise and it will definitely help you keep relevant for when new concepts and languages arise in the future.


[off topic...] Universities would LOVE to find a better teaching language than Java. e.g see this: Grace Programming Language.




 



Hammerer
2480 posts

Uber Geek
+1 received by user: 802

Lifetime subscriber

  #809666 1-May-2013 16:38
Send private message

A few years ago I got my 10 and 11 year old boys to learn to program so they didn't just play computer games all summer holiday - they never thanked me for it but both want to have IT careers. I chose Python because it was free and flexible: high-level, easy to read, interpreted with a command line, ran on almost anything, supported functional and object-oriented programming styles, works with a wide range of libraries, and it was easy to find free courses and other resources. We used a first year Otago University course.

The worst problem we struck is that Python, like other useful languages, is evolving so backwards incompatibility can affect some resources and courses.

LesF
176 posts

Master Geek
+1 received by user: 25


  #820664 16-May-2013 15:52
Send private message

I found a book on Erlang on sale and starting working thru that.  If you want strange and eccentric then have a look.  Probably not for beginners however.

I love C# and do not see this as restricted in any way. In addition to the MS .Net API's and/or Mono, there is a growing selection of libraries and frameworks on the net that help you tackle many areas of commercial and hobby tasks.

If I had my choice (and could find a good paying job with it) I would probably be a lot happier working with Python.  Altho it is an interpreted scripting language and people complain that it is not as fast as C, it has many powerful features and personally I have found more freedom and fun working with Python than with most other languages I have used (in 25+ years of development).  Plenty of web service frameworks and HTML templating tools etc keep Python relevant with the leading edge web-is-everything crowd as well.

Finally, I would suggest that whatever your criteria for selecting the tools to go with, make sure it has a comprehensive debugger, and if you are comfortable both using and showing others how to use the debugger, and you can trace thru in minute detail what is going on with your code, then you will be a lot happier in the long run.





--
Les

TwoSeven
1712 posts

Uber Geek
+1 received by user: 304

Subscriber

  #820924 17-May-2013 07:26
Send private message

Out of interest from time to time when I am mentoring developers I will use the language they are most familiar with (and usually class diagrams using OMT notation), much of it is usually conceptual with an expectation that the developer can figure out the implementation.

However, over time I have found Python to be very good at teaching pure object oriented techniques and C# to be an excelent general teaching language (especially around implementing complex patterns). For conceptual low level stuff I find C++ and C to be quite good and for the really low level things such as what the CPU is doing I find good old assembler to be useful (but its a rare thing these days).

For scripted or interpreted languages there is usually enough info out on the web for people to look up if they need to know how to do something in those environments.

I guess of one was teaching concepts and techniques, I would suggest using the language one is most comfortable with expressing those concepts and techniques in.




Software Engineer
   (the practice of real science, engineering and management)
A.I.  (Automation rebranded)
Gender Neutral
   (a person who believes in equality and who does not believe in/use stereotypes. Examples such as gender, binary, nonbinary, male/female etc.)

 

 ...they/their/them...


1 | 2 | 3 
View this topic in a long page with up to 500 replies per page Create new topic








Geekzone Live »

Try automatic live updates from Geekzone directly in your browser, without refreshing the page, with Geekzone Live now.



Are you subscribed to our RSS feed? You can download the latest headlines and summaries from our stories directly to your computer or smartphone by using a feed reader.