to learn or not to learn

Thread Starter

kaynenorth1

Joined Feb 13, 2012
11
do i need to learn languages like python , matlab , java in order to increase my knowledge in embedded system...
i have been working on 8051 for past two months on keil ide using C language..
 

t06afre

Joined May 11, 2009
5,934
I would say no. Depending on what you do. It may help to know a how make programs on a PC. I use C on PICs. On the PC side I use Labview. I tried to learn Visual C++ but gave up.
 

Thread Starter

kaynenorth1

Joined Feb 13, 2012
11
well i am an student of electronics and in future i would like to dedicate myself in development of embedded systems and microcontrollers..so do i need to learn those languages...
 

debjit625

Joined Apr 17, 2010
790
t06afre said:
I tried to learn Visual C++ but gave up.
The language is C++ ,Visual is just a name given by Microsoft to their C++ compiler. If you already know C then you know a part of C++ .You can say C is just a sub set of C++ .When Object where add to C it became C++ .But in case of most (not every) embedded systems OOP (Object Oriented Programming) is not needed ,so C is just enough .When complexity increase we programmers need OOP to make our life easier.

And don't give up, its not that hard rather it’s more interesting...
 

debjit625

Joined Apr 17, 2010
790
kaynenorth1 said:
do i need to learn languages like python , matlab , java in order to increase my knowledge in embedded system...
i have been working on 8051 for past two months on keil ide using C language..


well i am an student of electronics and in future i would like to dedicate myself in development of embedded systems and microcontrollers..so do i need to learn those languages...

Well learning is not bad ,so as per me you should learn them. They can have some use on embedded systems for example Java it runs on many embedded systems like you may have seen on many smart phones its an OOP language which lets programmers do some complex stuff on embedded systems with an ease .

Matlab is a very big tool to solve complex problems like to analyze your circuit, on embedded systems you not only need to handle software but also hardware and many times you will find Matlab kind of tools helpful to analyze your design.

I am not a Python guy but I have learnt it a bit, as I say learning is always good. Programming ideas could always be transferred from one language to other.
 

t06afre

Joined May 11, 2009
5,934
The language is C++ ,Visual is just a name given by Microsoft to their C++ compiler. If you already know C then you know a part of C++ .You can say C is just a sub set of C++ .When Object where add to C it became C++ .But in case of most (not every) embedded systems OOP (Object Oriented Programming) is not needed ,so C is just enough .When complexity increase we programmers need OOP to make our life easier.

And don't give up, its not that hard rather it’s more interesting...
It was OK as long as I only did things in a terminal window. It was all the Windows OS related stuff. Like builing GUIs that put me off.
 

debjit625

Joined Apr 17, 2010
790
It was OK as long as I only did things in a terminal window. It was all the Windows OS related stuff. Like builing GUIs that put me off
In C++ we call terminal window as Console screen. Communicating with OS or dealing with it, is not part of the C++ language or any language, it all about API and under Windows its WinAPI (Windows Application Programming Interface) or many times we call it Win32 programming for 32 bits Windows.

GUI stuff with C++ was hard for me at first too, as before using native language like C\C++,I used to work with C# .Net and it had a great GUI designer ,with just a few click and drag and drop you are ready with your GUI , but I didn't understood how all this was happening with so ease ,when I started learning about WinAPI's GUI stuff I understood what was actually going inside .Net classes and how .Net classes hide every complex WinAPI's GUI stuff inside.

When using WinAPI ,you have every access to window’s GUI stuffs that an OS (Windows) offers.What ever framework you use they all use Win32 at their core under Windows platform. If you design your GUI just using WinAPI it will be the most robust GUI under windows platform but as complexity increase we can’t stick to WinAPI alone ,we normally use a framework to make our life easier...

Their are many framework's to built GUI stuff with C++ ,like for example from Microsoft.. MFC (Microsoft Foundation Classes) .I personally use wxWidgets its open source and huge and plus point is that once you write a code you can port it to different platforms with a very few changes, like if I write something under Windows with wxWidgets, with a very few changes the same code could be compiled under Linux or Mac OS ,we call it cross platform GUI programming .There are also many Form Builders available for wxWidgets where, you can create your GUI very easily .
 

MrChips

Joined Oct 2, 2009
30,794
If you are a student and see yourself becoming an expert in the future, then start by learning ASM on your 8051. It will help you tremendously in getting a full grasp of all aspects of computer technology and programming.

For scientific calculations and data display on a PC I use Matlab. My embedded micro projects interface with Matlab via a UART to USB bridge using Silicon Labs CP2102.
 

GetDeviceInfo

Joined Jun 7, 2009
2,195
do i need to learn languages like python , matlab , java in order to increase my knowledge in embedded system...
i have been working on 8051 for past two months on keil ide using C language..
It would all depend on what your vision of 'embedded system...' is. A solid grounding in C will serve most of your needs with the 8051 stuff. Keil is a top quality compiler. If you concieve that a PC class board might serve an embedded solution, then your tools are going to change as you may be programming for windows. If you check, you'll likely find that virtually every architecture is being deployed in an 'embedded' market.

C, and it's variants, will be your base. From it you will recognize the logic structures in all languages. The largest variation will be in the tools that act upon your written language, and the framework into which your logic must reside. In other words, a language just communicates how well you understand. Changing the language doesn't change your comprehension. If I wanted to go to the moon, it doesn't matter in which language I speak, I need to go to the moon. In the end, don't sweat the dialect, just learn the concepts.
 

kubeek

Joined Sep 20, 2005
5,795
do i need to learn languages like python , matlab , java in order to increase my knowledge in embedded system...
i have been working on 8051 for past two months on keil ide using C language..
All three languages are meant for PC, you don´t get python or matlab in embedded devices. Java has it´s embedded version, but that seems to me useful just for stuff like java games in a mobile phone.

Python is good for processing text-based data and similar stuff, matlab is useful for simulation and verifying of systems and solutions.
 

coldpenguin

Joined Apr 18, 2010
165
These extra languages won't help much directly with the embedded programming.
However, if you are going to go on with engineering, you very well may find that being able to use a scripting language like python or perl will be helpful.
With a couple of lines of PERL code, you can convert data sets, etc. statistically investigate etc.
You can do the same in C, but it is quicker and easier in a scripting language.
Being able to translate one set of outputs into a viable input for another program (or excel) in just a couple of lines of code is often a good advantage, which I have seen others overlook
 
Top