Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: Friends son gave me some questions regarding computer languages to focus on  (Read 19488 times)

0 Members and 1 Guest are viewing this topic.

DaveLembke

    Topic Starter


    Sage
  • Thanked: 662
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Windows 10
My one high school friends son is graduating this June and he is 17 years old. He is planning on attending community college and then once his general study courses are completed through the cheaper community college, transfer into a larger college to attend the better courses and get a degree from that college name. He wants to be a computer programmer.

One question I was given was what computer languages are in need of programmers, to be the most successful at landing a job as a programmer after college?

I told him that I would gather more info up on this through Computer Hope, but that I told him that basically computer languages are sort of the same as verbal languages. The more you know the better off you are.

Landing a job as a computer programmer though you need to have a solid portfolio with programs of your own to demonstrate your abilities as well as show source code. You also have to be good at looking at other peoples code and being able to follow and troubleshoot that as for many times the jobs are not new jobs, but to fill a vacant position where a programmer was in it prior than yourself and so you need to be able to dive in and read it and understand it and sometimes depending on the prior programmer it may be programming that follows poor methods of execution as well as comments are missing, and for the fact that Goto statements have not been abolished in programming you can also be dealing with spaghetti code if the prior programmer was sloppy or lazy.

I also stated that one other area to have strength in is databases as for many programs these days interface with databases and so he would want to learn SQL through playing with mySQL etc to read and write data to and from database to the programs.

I stated that C++, C#, Python, PHP, and Perl are my favorite languages but that I was unaware of what languages are in more desperate need of programmers than others. Obviously the more languages you are able to work with fluently the better off you are.

He also asked about what languages to master to program for mobile devices as well such as iPhones, Droids, and tablets?

But I told him I haven't played with any of that type of programming because I still have a basic cell phone and the most portable of computerize devices is my Netbook computer.

Does anyone have any computer language suggestions or any other info for me to share with him on this subject?

There is tons of info on this on Google, but he came to me asking and I figured I'd check here for him.


camerongray



    Expert
  • Thanked: 306
    • Yes
    • Cameron Gray - The Random Rambings of a Computer Geek
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Mac OS
The actual language itself isn't that important so I'd start on something simple such as Python and then maybe move to something more complex like Java.  After learning enough the actual language in question shouldn't be a big deal as they will understand the underlying concepts and all they need to learn is the syntax changes and conventions of the language they are using.

Once someone has programmed for a while if they are asked to use a certain language they haven't used before it shouldn't be seen as a big deal and shouldn't take too long to pick up the language in question.  This is of course talking about languages that are at leas slightly similar such as moving from knowing Python to writing something in Perl.  You can't really apply it to moving from one language to something completely different such as Python to Haskell.

Jobs vary between areas and what businesses they are looking at but at least around here there is very high demand for web technologies including front-end development in Javascript and backend development in Python, PHP and Ruby.

As far as mobile devices - For Android you need to use Java and for iOS you would be looking at Objective-C.

Geek-9pm


    Mastermind
  • Geek After Dark
  • Thanked: 1026
    • Gekk9pm bnlog
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Windows 10
Python is best choice as first language.
Not my opinion.  Just fact.

http://mcsp.wartburg.edu/zelle/python/python-first.html
Python as a First Language
John M. Zelle
Department of Mathematics, Computer Science, and Physics
Wartburg College
Quote
Abstract

    Currently, there is little consensus about which programming language is most appropriate for introductory computer science classes. Most schools use a traditional system programming language such as C, C++, Java, or Ada in CS1 and CS2. However, scripting languages such as Tcl, Perl and Python are becoming increasingly popular software development tools. This article discusses the advantages of using a scripting language as the first language in the computer science curriculum. Scripting languages are simpler, safer and more flexible than system languages. Python in particular emerges as a near ideal candidate for a first programming language.
Please read his article.

No, no, it is not my favorite language.  8)
 Python is now the choice for new students. Read the article.

BC_Programmer


    Mastermind
  • Typing is no substitute for thinking.
  • Thanked: 1140
    • Yes
    • Yes
    • BC-Programming.com
  • Certifications: List
  • Computer: Specs
  • Experience: Beginner
  • OS: Windows 11
Python is best choice as first language.
Not my opinion.  Just fact.
What you represented here is opinion- the only fact here is that you are presenting the opinion of somebody who wrote down some thoughts in 2003 as a source of objective fact on the matter. The cited article provides zero objective evidence supporting the claim that certain languages (in this case, it lists Perl, Python, REXX, and Visual Basic) are in some way better than other languages; most interestingly, it also labels Visual Basic a "Scripting Language".

Quote
The former are statically typed, usually compiled, and represent a modest abstraction from the underlying machine. The latter are dynamically typed, usually interpreted, and very high-level.
The issue being that this doesn't actually present two mutually exclusive options, because many languages have attributes that fall into both categories; additionally, we have the added issue of ambiguity and vagueness; it says that the latter (scripting languages) are "usually interpreted"- what does that mean? How much interpreting is the cutoff? is C# a Scripting Language? is Java? if you compile C to P-code- so it get's interpreted at run-time, does it become a scripting language, and if it does, does that not make the label redundant enough to be entirely useless? By the definition given here, practically any language that doesn't compile directly to native code is a "scripting language"; but does that not completely surpass the actual word being used? That is, would it not be expected that a scripting language's primary purpose be for- I don't know- scripting. Instead, what we have is a mathematician coming up with arbitrary word definitions based on prior art (also made by mathematicians) to try to buttress a subjective opinion enough to make it actually appear to have objective merit.

It then supports it's thesis that Python is better for this purpose than other languages with a few arguments:

-Python is simple

In this section, it discusses that python is simple, and it demonstrates this with an example that is trivial enough to be useless. Assembly is simple to. Heck that exact example would be equally simple in c- a puts("string") does the same thing. It tags certain approaches (eg Java's requirement that all things be in a class) as "worse"- Worse than what? in what way? Why? It doesn't explain that. It then supports a further thesis that Python is simple to understand; in particular, it starts with Python's Variable declarations being optional-

-Python is safe

This argument surrounds Python's use of a Garbage Collector and run-time checks. This presents a curious definition of "safe". If anything it is better because it gives you a useful error message, rather than segfault or related error/crash. It's also the case that while GC'd languages with these sort of run-time capabilities were only just hatching proper in 2003, now about half the languages used in the world fall under their "scripting" definition and use Garbage collection (Java, Javascript, Typescript, CoffeeScript, Python, Perl, C#, VB.NET, F#, Boo, Haskell, Scala, Groovy, D, Clojure, etc.)

Quote
Semantically, Python is also simple. Python is dynamically typed, so there is no need for variable declarations. This reduces the amount of code that students have to write and also eliminates common errors stemming from misunderstanding the subtle distinctions of declaration, definition and use. For example, students in C++ and Java often ``accidently'' redeclare variables where they really only want to use them (typing int count = 0; when they mean count = 0). Such mistakes can be hard to track down.
I bolded the relevant section here; considering that precise mistake that is described is going to be a compiler error on pretty much every language that has variable declarations, it would seem that argument is demonstrably false.

Quote
No, no, it is not my favorite language.  8)
 Python is now the choice for new students. Read the article.
Python is an excellent language, however, it's worth noting that the article is simply presenting arguments as to why Python might be preferred. It doesn't present a roadmap for switching curricula to Python nor does it describe present implementations.

Also notable: it was written 11 years ago, if web.archive.org is any indication. I was tipped off that the article was probably old by the first paragraph which mentions Pascal.

Most CS cirricula use languages like Scheme (mentioned therein) and Haskell; I'm sure some use Python, others use Java, C, C++, and so on and so forth. The fact is there really is no "best" beginning programming language to become a programmer, any more than there is a "best" beginning cake somebody should eat to properly enter the world of cakes.
I was trying to dereference Null Pointers before it was cool.

Geek-9pm


    Mastermind
  • Geek After Dark
  • Thanked: 1026
    • Gekk9pm bnlog
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Windows 10
BC_Programmer is wrong.  He fails to present a credible argument.
Quote
...somebody who wrote down some thoughts in 2003 as a source of objective fact
Which is a not true  The man is not just somebody. He is an expert in his academic area.
Because of this error, nothing  BC has to say can be considered relevant.
Also, demeaning a paper  published in 2003 or earlier or later is not meaningful.

BC_Programmer


    Mastermind
  • Typing is no substitute for thinking.
  • Thanked: 1140
    • Yes
    • Yes
    • BC-Programming.com
  • Certifications: List
  • Computer: Specs
  • Experience: Beginner
  • OS: Windows 11
BC_Programmer is wrong.  He fails to present a credible argument.
I actually wasn't presenting a refutation at all (necessarily) because a refutation was not necessary- The claim is that Python is not just a good language for starting programming, but the best. The article fails to present a very good case for this- both because it is out-dated (some of it's merits attributed to python or the vague category in which it places it now apply to innumerable other languages) as well as due to factual inaccuracies that call into question the quality of research actually put into the writing (eg. that shadowing variables won't cause compile errors).

It is not on me to present an argument about why Python is not the Best Programming language. If the post fails to make the case that it is, than it fails to make the case that it is. I presented why the case it makes is weak- both due to being out-dated as well as due to factual errors. If your only response is effectively a claim that because he is a "expert in his academic area" that is nothing more than an appeal to authority. His writing in this case is no more competent or learned than your average forum post, and is rife with the sorts of inaccuracies you simply would not expect from it.

Quote
Also, demeaning a paper  published in 2003 or earlier or later is not meaningful.
The topic in question is about programming languages. Programming languages and the surrounding industry landscape has changed drastically since the post was written. You yourself have mentioned this countless times with your repeat posts about things such as how supposedly we won't be able to build PCs shortly or how everything is doable with a smartphone or how everybody is switching to a tablet; to suddenly change tact when it is convenient and say that nothing has changed in the meantime is disingenuous. Even if we allow for the assertion that Python was the best programming language for learning in 2003 (the case which the paper makes being weak or specious) that doesn't carry over to 2014. Not only has Python changed (does the introduction of Lambda's and first-class functions as well as Python 3 semantics change it's standing?) but the entire landscape has changed on several fronts. Now almost all applications are developed using what the article describes as "scripting languages"; many of thoes new languages posess all of the advantages that were listed by the paper for Python- meaning Python itself offers little unique. It's "near english" appearance is not helpful- it's confusing. English is designed for communicating with other people, not computers. All a "english-like" language does- including python- is ascribe english symbols to AST elements and have them arranged to appear like an english sentence:

Code: [Select]
value = 1 if test=50 else 0
A beginning programmer- somebody with no programming background, will see the similarity to English and probably try to apply English rules.

Code: [Select]
value = if test=50 then 1 else 0
Perfectly "valid" english either way. Not so valid as Python. Basically "english-like" brings with it a lot of language baggage; English is designed for communicating between people; a programming language is designed for communicating between a person and a computer (or rather, the interpreter/compiler which makes it into something the computer understands, but let’s not cloud the issue). So you end up with a psuedo-english language that tries to be declarative but at the same time isn’t English.
I was trying to dereference Null Pointers before it was cool.

camerongray



    Expert
  • Thanked: 306
    • Yes
    • Cameron Gray - The Random Rambings of a Computer Geek
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Mac OS
Python is best choice as first language.
Not my opinion.  Just fact.

http://mcsp.wartburg.edu/zelle/python/python-first.html
Python as a First Language
John M. Zelle
Department of Mathematics, Computer Science, and Physics
Wartburg CollegePlease read his article.

No, no, it is not my favorite language.  8)
 Python is now the choice for new students. Read the article.
BC_Programmer is wrong.  He fails to present a credible argument.Which is a not true  The man is not just somebody. He is an expert in his academic area.
Because of this error, nothing  BC has to say can be considered relevant.
Also, demeaning a paper  published in 2003 or earlier or later is not meaningful.

Are you seriously just trying to troll now?  I will add that I absolutely love python and really support it as a first language, I also volunteer to help kids learn programming and with their own projects, and regularly recommend Python if they are just starting out.

That said, your link is a fact, it is all opinion.  There is no best programming language, that's like saying there is a "best computer" or a "best car".  That academic paper makes many valid points, but just because it exists doesn't mean that "Python is best choice as first language" - I'm sure there are also several papers out there that would also say that C++ or COBOL is the best choice as a first language!

Just because someone has a lot of fancy letters after their name, doesn't mean that they can simply produce "facts" - BC is an extremely experienced programmer and an MVP but because he isn't an "academic" does this mean that everything he says is wrong? NO!  If an "academic" produced a paper stating that chocolate is the best flavour of ice-cream, does that mean that we should only ever eat chocolate ice-cream and that anyone who prefers a different flavour is somehow wrong?

Quote
BC_Programmer is wrong.  He fails to present a credible argument.
I had to laugh at this.  When have YOU ever presented a credible argument?  You'll regularly say something completely irrelevant and throw an entire thread off-topic (as you are doing here) then start linking to completely out of date articles that talk about something completely irrelevant to you argument.  BC on the other hand has years of experience as a professional and hobbiest software developer.  How about I start replying to your stuff in other threads saying "Geek-9pm is wrong.  He fails to present a credible argument." which in many cases would be more appropriate than here?

BC_Programmer


    Mastermind
  • Typing is no substitute for thinking.
  • Thanked: 1140
    • Yes
    • Yes
    • BC-Programming.com
  • Certifications: List
  • Computer: Specs
  • Experience: Beginner
  • OS: Windows 11
I will add that I absolutely love python and really support it as a first language, I also volunteer to help kids learn programming and with their own projects, and regularly recommend Python if they are just starting out.
Yep, Python is a great language for starting out. It's just one of many though; IMO a reasonable curriculum should include coverage of functional programming languages or style. being able to grasp function indirection is becoming important


Quote
That said, your link is a fact, it is all opinion.  There is no best programming language, that's like saying there is a "best computer" or a "best car".  That academic paper makes many valid points, but just because it exists doesn't mean that "Python is best choice as first language" - I'm sure there are also several papers out there that would also say that C++ or COBOL is the best choice as a first language!
Interestingly,

Quote
but because he isn't an "academic" does this mean that everything he says is wrong? NO!  If an "academic" produced a paper stating that chocolate is the best flavour of ice-cream, does that mean that we should only ever eat chocolate ice-cream and that anyone who prefers a different flavour is somehow wrong?
That's kind of what i was taking it as as well; Academic papers- and the people that write them, are not on any form of pedestal. It would be different for other topics such as Geology, Oceanography, etc. where there is a history going back hundreds of years and just learning that history is laudable; when it Comes to computer science, it is so young that to declare anything as absolute is to look past the ever changing landscape which affects those things, and it certainly requires a lot more information that "it looks cleaner" and comparisons of completely trivial hello world programs. This may partly be why it didn't get any particular permanence; many programming classes have moved to Haskell since that paper was written. The only source of information on Learning Programming in Python seem to be from this individual- who coincidentally also writes a textbook on learning Python programming.- so it's obvious that he thinks Python is the best programming language for learning- and that's fine. More material for learning programming languages is great. But to state it so blindly as an objective truth (which he actually doesn't do in the paper anyway) would of course be foolish.
I was trying to dereference Null Pointers before it was cool.

DaveLembke

    Topic Starter


    Sage
  • Thanked: 662
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Windows 10
Thank You All for your input on this... I e-mailed him a link to Computer Hope so that he can read all of this as well as I suggested that he become a member here as well to post questions as well as help others when he can.  :)

patio

  • Moderator


  • Genius
  • Maud' Dib
  • Thanked: 1769
    • Yes
  • Experience: Beginner
  • OS: Windows 7
He'll probably choose a different career now.....
" Anyone who goes to a psychiatrist should have his head examined. "

Geek-9pm


    Mastermind
  • Geek After Dark
  • Thanked: 1026
    • Gekk9pm bnlog
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Windows 10
He'll probably choose a different career now.....
He should read this:
The 10 Best Careers Right Now For Recent College Graduates
But after four years it will change ...  :o

DaveLembke

    Topic Starter


    Sage
  • Thanked: 662
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Windows 10
Quote
He'll probably choose a different career now.....

 ;D Had a laugh at that...

In reference to Geeks post, there will always be a need for "well skilled" computer programmers.

jackj



    Rookie

    • Experience: Experienced
    • OS: Windows 7
    I would recommend starting with a scripting language (Perl, Ruby, Python, Powershell) rather than a programming language (C, Java, C++, C#, Objective C). The amount of setup you have to do to get basic stuff working in a scripting language is tiny compared to the work needed in a programming language.

    I would also say, that your first language is the hardest, but it's important not to just learn one language. People who only learn one language tend to lack a deeper understanding of how their language works, because they've nothing to compare it against. I actually think Javascript is a great language to learn academically, because it's very simple, when compared with a monster like Java.

    DaveLembke

      Topic Starter


      Sage
    • Thanked: 662
    • Certifications: List
    • Computer: Specs
    • Experience: Expert
    • OS: Windows 10
    Thanks for your suggestion jackj

    I ended up looking to see if there was a free tutorial online to help him get started with this over this summer as something to play around with as a head start before college, and found this website that offers from what I have read into so far a pretty good tutorial to learn by examples. They even offer the entire tutorial for download as a PDF under the basis that if you feel the tutorial was beneficial to you that you could donate like $6.99 by paypal to the site for providing it. With so many other tutorial sites out there that are free that are loaded with advertisements, its nice that this site has a clean ad-free PDF option to have a clean electronic book to work from online or offline.

     I am going to donate myself some money to them and download some copies of other languages as PDF's to look over myself which are all reasonably priced. Its nice that they are offering this up for free download to help anyone who is poor to learn for free as well as those of us like myself with good ethics and honesty can pay the author/company for this content that they are providing on the honor system that if its beneficial to you and you can afford to pay for it, that you will do the right thing and pay for it. http://www.tutorialspoint.com/python/index.htm

    patio

    • Moderator


    • Genius
    • Maud' Dib
    • Thanked: 1769
      • Yes
    • Experience: Beginner
    • OS: Windows 7
    Cool info Dave...Thanx.
    " Anyone who goes to a psychiatrist should have his head examined. "

    camerongray



      Expert
    • Thanked: 306
      • Yes
      • Cameron Gray - The Random Rambings of a Computer Geek
    • Certifications: List
    • Computer: Specs
    • Experience: Expert
    • OS: Mac OS
    I can highly recommend the tutorials from "TheNewBoston" on YouTube.  He has loads of tutorials including ones for Python and Java: https://www.youtube.com/user/thenewboston/playlists

    BC_Programmer


      Mastermind
    • Typing is no substitute for thinking.
    • Thanked: 1140
      • Yes
      • Yes
      • BC-Programming.com
    • Certifications: List
    • Computer: Specs
    • Experience: Beginner
    • OS: Windows 11
    I can highly recommend the tutorials from "TheNewBoston" on YouTube.  He has loads of tutorials including ones for Python and Java: https://www.youtube.com/user/thenewboston/playlists

    "This is a variable... This is a variable... Variables hold numbers and stuff...."
    *15 minutes later*
    "This is a variable too"

    Stay tuned for the next episode and don't forget to rate comment and subscribe!


    The best comparison is that things like the Language, platform, and library documentation is an animal encyclopedia, your average programming book is a annotated reference to that encyclopedia, and thenewboston is one of those toys where you spin the arrow and it tells you what sound farm animals make.
    I was trying to dereference Null Pointers before it was cool.

    DaveLembke

      Topic Starter


      Sage
    • Thanked: 662
    • Certifications: List
    • Computer: Specs
    • Experience: Expert
    • OS: Windows 10
    Quote
    The best comparison is that things like the Language, platform, and library documentation is an animal encyclopedia, your average programming book is a annotated reference to that encyclopedia, and thenewboston is one of those toys where you spin the arrow and it tells you what sound farm animals make.


    Thank You BC for the much needed laugh on a 12 hr shift  ;D

    Also Thanks Cameron for the suggestion. I have used Youtube for other how to videos such as guitar techniques for playing my Ibanez electric for certain music that has you performing some tricky finger work etc, as well as being able to see the insides of my oil furnace pump motor assy before servicing it to know what parts and tools are needed etc which allowed me to fix my own furnace this winter for $7 in parts. Haven't used it for looking at programming yet, but will look at the videos thenewboston has.

    Back when I learned programming in the early 1980s with Basic with the TRS-80 Model 1 with 16k RAM, it was all hands on by learning it out of a book that came with the computer which may have been called TRS Basic with an Hour Glass like symbol for Tandy. All the cool programs to really learn from were by taking 1 or 2 hours to carefully type in a program out of the TRS-80 Magazine called the 80 Micro which was a Monthly magazine with all sorts of programs printed in it that you could type manually into your computer and save to Cassette tape or if your lucky a single sided 5.25" floppy disk. Some were games, others were how to control sprites on the display etc for a starburst effect etc. Back in those days I learned quickly to debug code when either I messed up typing it in or there was a typo in the magazine and you had to find the typo which was sometimes like Wheres Waldo trying to find a missing ( : or ; ) when on a single line you can have multiple instructions such as [ 5 For N=1 to 255:?chr$(N);" = ";N:Next N ] and the ? was a faster shorthand for PRINT and when you performed LIST to see the code the ? would be PRINT which was a faster programming method for all the many PRINT instructions.

    Some people learn by watching a video etc which would be similar to a teacher who talks and doesnt take questions and others learn by the book  reading and then typing the code in and watching the program either run correctly, run with unintended results, or fail to run or compile depending on if its a true language that needs to be compiled or a scripting language that would simply state an error at say Line 14.

    vikrantrana



      Newbie

      • Experience: Guru
      • OS: Windows 10
      Thanks for the info.
      I would also like to share my experience regarding learning programming language. When I was pursuing my degree, I was in dilemma in choosing between java and python. I learned C/C++ but now it was the time to choose between the top languages in the market. After lot of research, I decided to move on with python. In the beginning, I faced lot of issues while learning python from online resources but then i found one of the best python tutorial online which helped me a lot to learn and master the programming in python.
      So, I would like to recommend to check out this online python resource for in-depth knowledge in python. They have also added python projects in tutorial which gives a practical hand on python with professional exposure.
      I hope it helps.
      Happy Learning!