Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   What programming Language To Use?? (http://www.chiefdelphi.com/forums/showthread.php?t=98215)

Jon236 13-11-2011 18:29

Re: What programming Language To Use??
 
Folks,

Bear in mind here that the object of FIRST is not to produce software engineers; it is to inspire kids to get interested in STEM careers. If we can get them hooked with Labview or Java, that's all to the good. I think the key here is not to let the kids founder. The team needs to pick a programming tool that is well supported and that a mentor can help them with. FIRST does a great job producing tools in all 3 supported languages. Every team should have a mentor (either close or on-line) that can help them succeed.

Ether 13-11-2011 18:46

Re: What programming Language To Use??
 
Quote:

Originally Posted by Ether (Post 1084911)
Isn't the converse also true ? Had you learned SML first, you would have had the same issue when learning C, C++, Java ? So if you're going to have to learn both, does the order matter ?
Quote:

Originally Posted by Chris27 (Post 1084916)
I'm still much more comfortable with Java (OOP) so I would say yes it does matter.


And you've spend the same amount of time learning/using SML as you did Java?



Chris27 13-11-2011 18:55

Re: What programming Language To Use??
 
Quote:

Originally Posted by Jon236 (Post 1084923)
Folks,

Bear in mind here that the object of FIRST is not to produce software engineers; it is to inspire kids to get interested in STEM careers. If we can get them hooked with Labview or Java, that's all to the good. I think the key here is not to let the kids founder. The team needs to pick a programming tool that is well supported and that a mentor can help them with. FIRST does a great job producing tools in all 3 supported languages. Every team should have a mentor (either close or on-line) that can help them succeed.

FIRST is also an excellent opportunity to give high school students a head start in the stem fields. If a student is thinking about doing programming for a living and going into a CS or similar program when he/she graduates, then giving them an opportunity to start learning a standard programming language such as C++ or Java will enable them to hit the ground running when college comes around much more so then having them learn Labview.

Chris27 13-11-2011 18:57

Re: What programming Language To Use??
 
Quote:

Originally Posted by Ether (Post 1084926)
And you've spend the same amount of time learning/using SML as you did Java?


No. But If I had spent my early years at college working with SML over a language such as Java, it would have made getting an internship really hard.

Ether 13-11-2011 19:07

Re: What programming Language To Use??
 
Quote:

Originally Posted by Chris27 (Post 1084929)
If a student is thinking about doing programming for a living and going into a CS or similar program when he/she graduates, then giving them an opportunity to start learning a standard programming language such as C++ or Java will enable them to hit the ground running when college comes around much more so then having them learn Labview.

If that had been stipulated at the outset the dialog would have been a bit different I think.


Ether 13-11-2011 19:12

Re: What programming Language To Use??
 
Quote:

Originally Posted by Chris27 (Post 1084934)
No.

I think that, rather than the order in which the languages were studied, would explain why you are still much more comfortable with Java (OOP).


Quote:

Originally Posted by Chris27 (Post 1084934)
But If I had spent my early years at college working with SML over a language such as Java, it would have made getting an internship really hard.

Likely true, but not germane to the "order" question.


Chris27 13-11-2011 19:38

Re: What programming Language To Use??
 
Quote:

Originally Posted by Ether (Post 1084939)
I think that, rather than the order in which the languages were studied, would explain why you are still much more comfortable with Java (OOP).

A large part of it is that OOP is what I use on a day to do basis. Also, the various routine algorithms and data structures I have learned through getting a CS degree has for the most part been through the lens of OOP and shapes how I understand them. To think about these concepts in another programming paradigm would take more effort.

Quote:

Likely true, but not germane to the "order" question.

Switching from one programming paradigm to another requires a period of "unlearning" things. Accomplishing a routine task in the new paradigm could very well make the old way you are use to doing it invalid or not optimal and it will take some effort to break the habit.

Ether 13-11-2011 19:52

Re: What programming Language To Use??
 
Quote:

Originally Posted by Chris27 (Post 1084950)
A large part of it is that OOP is what I use on a day to do basis. Also, the various routine algorithms and data structures I have learned through getting a CS degree has for the most part been through the lens of OOP and shapes how I understand them. To think about these concepts in another programming paradigm would take more effort.

Switching from one programming paradigm to another requires a period of "unlearning" things. Accomplishing a routine task in the new paradigm could very well make the old way you are use to doing it invalid or not optimal and it will take some effort to break the habit.

Nothing I've posted here previously was intended to take issue with anything stated above. I think we are in agreement on those points.

Person "A" learns SML as a first language (for one year) and then studies C++ for three years.

Person "B" learns C++ as a first language for three years, then studies SML for one year.

I'd say order doesn't matter, or if it did, then it's arguable which Person is better off.




Chris27 13-11-2011 20:06

Re: What programming Language To Use??
 
Quote:

Originally Posted by Ether (Post 1084952)
Nothing I've posted here previously was intended to take issue with anything stated above. I think we are in agreement on those points.

Person "A" learns SML as a first language (for one year) and then studies C++ for three years.

Person "B" learns C++ as a first language for three years, then studies SML for one year.

I'd say order doesn't matter, or if it did, then it's arguable which Person is better off.



If both person A and B are both first venturing into programming, they will not be able to learn a language in a year. Being able to code something in a language is much short of having a deep understanding of it. One year isn't a whole lot of time so yes, there probably won't be that great of a difference between person A and B. However, If say person A started with SML for 3 years and then continued with C++ for 3 years and person B did the converse, I guarantee you that if you posed the same programming problem to each person afterwards, they would approach the problem in very different ways.

Ether 13-11-2011 20:26

Re: What programming Language To Use??
 
Quote:

Originally Posted by Chris27 (Post 1084955)
If both person A and B are both first venturing into programming, they will not be able to learn a language in a year.


Person C uses LabVIEW for FRC programming for three years, then goes to college and studies C++ for four years.

Person L uses C++ for FRC programming for three years, then goes to college and studies LabVIEW for four years.




Jon236 13-11-2011 21:10

Re: What programming Language To Use??
 
To move the conversation away from the particular, think about programming languages as just that, languages. The universal language is, of course, mathematics. Each programming language is another way to express those relationships. Granted they are different, but I disagree that learning another language requires 'unlearning'. I think the power of learning additional languages is the capacity to get your mind around problems in different ways. Different problems require different tools. I would think a company would rather hire a multi-lingual programmer who can find the best solution for a given problem.

My son, a FIRSTer who is now an ME at Electric Boat, learned C for FIRST, Labview at WPI, then used an Arduino for his capstone project. When a certain problem required a unique approach, he was the only ME in his group with the requisite programming skills to handle the problem.

So look at learning a number of programming languages as building a toolkit for your future!

Alan Anderson 13-11-2011 21:26

Re: What programming Language To Use??
 
Quote:

Originally Posted by Chris27 (Post 1084955)
If both person A and B are both first venturing into programming, they will not be able to learn a language in a year.

Do you really think it takes that long to learn a programming language, Chris? That would explain a lot of why you think it's a bad idea to learn what you consider a "nonstandard" language.

Learning the fundamentals of any programming language (not counting things like BEFUNGE or Kipple) can be done in a few days, and it shouldn't take more than a month of appropriate exercise for someone to become productive. In my experience as a team mentor, learning enough LabVIEW to program an FRC robot takes less than two weeks for someone who wants to learn but has no previous programming experience. I've never watched anyone use C++ in the same situation, but I can't imagine it taking much longer.

The biggest thing I think you're missing is that learning two markedly different languages is a good thing. I agree with whoever it was who said that the most important programming language someone can learn is their second one.

Chris27 13-11-2011 23:38

Re: What programming Language To Use??
 
Quote:

Originally Posted by Alan Anderson (Post 1084979)
Do you really think it takes that long to learn a programming language, Chris?

To master an entirely new language, I would say it typically requires a lot more then a year. When I mean "learn" a language, I'm not talking about just learning the syntax. I would say to really master a language you need to have a much deeper understanding of that e.g. the libraries and tools that exist for the language, knowing the various nuances and pitfalls/traps of the language. Knowing a lot about how the language is implemented, what is happening in the back end etc. For instance, I wouldn't say someone knows Java if they couldn't give an in depth explanation how the Java garbage collector is implemented.

Chris27 13-11-2011 23:43

Re: What programming Language To Use??
 
Quote:

Originally Posted by Ether (Post 1084963)
Person C uses LabVIEW for FRC programming for three years, then goes to college and studies C++ for four years.

Person L uses C++ for FRC programming for three years, then goes to college and studies LabVIEW for four years.



Seriously? You believe both will graduate from college with the same set of qualifications/skill sets?

Greg McKaskle 14-11-2011 09:13

Re: What programming Language To Use??
 
In Atlanta a few years ago, I said that the most important language a CS student would learn would be their second. Without belaboring the topic, here is my justification.

By the time I started college, I only knew one language, BASIC. I had rather extensive experience in computer math, solving sets of equations using various linear algebra approaches, plotting polynomials on a screen or printer; not CS, but CM. My first college course taught C, and while I sort of knew what pointers were, I saw no real value in them until I learned C. Wow. Then I thought I knew it all. Follow-on courses were in Pascal, FORTRAN, and assembly, and honestly weren't differentiated enough to displace C as the reference language in my head.

Then I had an AI course and we were given problems that would be near impossible in C. Fortunately, we were learning lisp as the course language, and it became apparent that computers were capable of being far more than procedural machines.

As others have said, any of the languages offered in FIRST are capable and offer good learning experience. The libraries are distributed in source form, and using similar terminology and implementation. This was done to allow easier comparisons and to allow students using different tools to hopefully communicate at the level of the problem rather than at the level of the tool, thus being exposed to more tools.

In all, I'm happy that FIRST now has multiple languages actively supported. I see teams being successful in all of them and transitioning to gain different experiences.

To the original poster -- there are no bad choices. Balance the opportunities with the risks, and invest as much time and energy as you can afford into this program.

Greg McKaskle

Greg McKaskle


All times are GMT -5. The time now is 18:54.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi