I’m looking towards to be a software engineer and I want to know if there’s a specific language (code) that’s popular I would have to learn. I know Robot C, but I’m not sure if I could apply that in college programming or in jobs. I also there HTML/CSS is another type of coding but from web design ( got experience from MySpace). In factories, will they have their own language for me to learn or is a code like Java pretty popular for most software engineers to learn and apply?
Learning a language is not nearly as important as learning how to program, how to refactor code, analyze problems, present ideas in a logical manner, communicate with your peers, be thorough and complete in your thought process, develop your domain knowledge.
I have been developing software for many years and have learned and forgotten more languages than I can remember. For the most part, languages can be learned quickly, it’s knowing what to do with those languages that takes constant attention.
If I was just starting out, I would learn how to develop applications for mobile devices. This is a pretty hot area right now and will be for some time. I think we are going through another paradigm change like we did when we went to client/server, then web based application, and now mobile.
A little background. I am a senior in Electrical Engineering at Purdue University, and I have almost 2 years of job experience as a co-op for Technicolor (in their set top box division).
In high school, I learned C for robotics (back when the controls were from IFI), and Java from AP computer science.
If I were to recommend a language to you, I’d suggest a strongly typed one such as C/C++/Java.
At work, the language I use really depends on the application and situation. For instance, for quick and dirty desktop programs, I use Java almost exclusively (I recommend NetBeans for your IDE).
For driver level software and embedded systems, C is pretty much the de facto standard (well, depending on what type of chip you’re using).
In the application layer of cable boxes, blu-ray players, and many phones, Java is widely used.
As far as factories and manufacturing goes, every factory will be different in the way they implement their controls. Usually these setups are very expensive and hard to obtain, and more than likely you’ll receive on the job training. The more languages you’re exposed to, the easier it should be to learn another.
Best of luck.
a Software professional cannot know too many languages!!
Knowing one well gives you the basis for applying it to all others.
Opens more doors… gives you power, to chose what is best for a particular application.
If you want techy rather then business S/W path you are already in good position.
Knowing Appling ‘C; "C++’ etc is your most powerful tool right now
…Realtime application is of particular advantage to many employers (esp robotics)
… your robotics application is transferable to many tech companies as is!!
By all means keep your options open and progress optimum:
Apply for one of those scholarships and pursue a BS in CS…
Consider a double major… CS + Mathematics or ME or EE even Physics if you fundamental sciences curiosity and interest… To place yourself in the peer envious position of understanding in depth that which you wish to express via Software.
For example, if you really dig electronics
… learning PSpice Electrical / Electronics modeling simulation is fascinating…
Could lead to your becoming a crack electronics designer
MicroSIM PSpice 9.1 free student version is available online
… simulating analog & digital circuitry performance before construction, similar to the Auto-desk Auto-CAD for ME designs of robots.
(Electrical freedom has not been so generous as degree ME is in FIRST currently tho that $400 electronics could benefit from PSpice - schematic entry, performance shown graphically as would be seen on Oscilloscope… A true Creativity exercise of What If’s)
A current example: the RS775 motor short to case = robot frame couples a 0-12.6v rectangular PWM waveform to the chassis, ~150 ea V884 (or more w/Jag) fast rising & falling edge transitions (stretched by motor inductance) capacitively coupled to any & all sensitive sensor & analog input wiring co-located with aluminium chassis aka electrical conductor, thus ‘other’ plate of a capacitor,
is likely responsible for hundreds of ‘field’ problems the last few years.
No one (to my knowledge) has endeavored to model it to predict potential of such erratic behavior.
Some including myself have offered a DC scenario
… In actuality it is NOT a static DC voltage on the motor terminal except at full throttle forward, reverse or neutral!!
A dynamic PSpice model while beyond the scope of a typical team is the sort of effort that demonstrates, ‘illuminates’ skill employers seek.
Labview is used by most big companies due to its widespread use, portability and reusable modules.
I worked for TRW 37yrs now Northrop Grumman (now retired)
… Labview was/is the language/platform of choice to develop test sets for Satellites, Semiconductor Parametric Test, Assemblies, Electronics and Systems of all sorts
Knowing languages such as Fortran will help to get you in the door for companies still using older computers, but 'C" is the bread & butter
JAVA & many others are written in ‘C’
(‘C’ can be made to look like many other languages it is flexible & versatile high level enough to be easier to code yet close enough to native machine language to be suitable for most applications)
High level languages such as JAVA will open doors to work in a wider breadth of assignments consequently of more value to your company.
If you love challenge, learning and applying assembly languages puts you on the most advanced level (fewer software types elect cause it’s harder & unique to each processor: NCIS McGeek, so garner much respect from peers and managers, reflected in your salary)
I know I diverged a bit… hope you find it interesting and stimulating…
Good luck in your continuing education and career what ever paths emerge.
A high level of enthusiasm and open mindedness always helps.
I’m not a programmer, but I do know a little bit about it, and have dabbled in a few languages.
First, I would never tell someone you learned to code from Myspace, unless you actually were employed by Myspace. My understanding is that these days, Myspace is completely dead, and typically regarded as an atrocity of coding and a hall-of-horrors of web-design.
I’ve heard every engineering student at Harvey Mudd takes a class in Python, and I’ve read it’s a very key/core efficient language to learn the fundamental concepts. That being said, I’ve never learned it myself…so this is purely hearsay.
I know 16 languages, actively use 5, and expect to learn at least one every year or two for the rest of my career. Advocating one programming language over another is a bit like saying that a hammer is better than a screwdriver.
My suggestion is to find a cool project and then learn the language that is most appropriate for that project. The most important part is to understand how and why the new language is different than the ones you already know.
Otherwise, you can freely download “How to Think Like a Computer Scientist” from http://www.greenteapress.com/thinkpython/ . I’m a bit biased, as the author was one of my professors, but it may be one of the easiest ways to learn the important high level concepts. It also happens to be one of my favorite education stories - Alan learned Python by reading his own book on Python… He wrote the text for Java and open sourced it. Someone downloaded it, translated it to Python, and sent it back to him. Voila! He learned python by reading his own book!
Wow, thank you all I never knew C was that universal of a language for coding.
I also want to know what my work area is like. Is it going to be in a lab? Factory?
Thanks again for all your input.