to learn or not to learn

Discussion in 'Embedded Systems and Microcontrollers' started by kaynenorth1, May 2, 2012.

  1. kaynenorth1

    Thread Starter New Member

    Feb 13, 2012
    11
    0
    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..
     
  2. t06afre

    AAC Fanatic!

    May 11, 2009
    5,939
    1,222
    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.
     
  3. kaynenorth1

    Thread Starter New Member

    Feb 13, 2012
    11
    0
    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...
     
  4. debjit625

    Well-Known Member

    Apr 17, 2010
    790
    186

    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...
     
  5. debjit625

    Well-Known Member

    Apr 17, 2010
    790
    186

    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.
     
    kaynenorth1 likes this.
  6. t06afre

    AAC Fanatic!

    May 11, 2009
    5,939
    1,222
    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.
     
  7. debjit625

    Well-Known Member

    Apr 17, 2010
    790
    186

    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 .
     
  8. MrChips

    Moderator

    Oct 2, 2009
    12,447
    3,362
    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.
     
  9. GetDeviceInfo

    Senior Member

    Jun 7, 2009
    1,571
    230
    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.
     
    kaynenorth1 likes this.
  10. kubeek

    AAC Fanatic!

    Sep 20, 2005
    4,670
    804
    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.
     
  11. coldpenguin

    Active Member

    Apr 18, 2010
    165
    9
    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
     
Loading...