Skip to main content
amirmahdi hajizadeh
Visitor II
January 28, 2018
Question

how can i be a professional stm32 programmer ?

  • January 28, 2018
  • 9 replies
  • 3427 views
Posted on January 28, 2018 at 18:32

hi , i  recently start programming with stm32f103rbt6 (using SPL) and i want to be a professional stm32 programmer , what is the best way to reach my purpose ? 

thanks 

    This topic has been closed for replies.

    9 replies

    S.Ma
    Principal
    January 29, 2018
    Posted on January 29, 2018 at 07:25

    Besides going to school/university for learning embedded programming, it will be by experimenting and debugging. In a non exhaustive list, my quick quess would be:

    - Work on a project involving a serial interface and some analog

    - Write your code so that 6 months later you can continue enhancing it

    - Build your code so all possible error cases are treated

    - Find a way for your code to be non-blocking

    - Have fun with interrupts, make a smarter device by burying a state machine or a FIFO under interrupt.

    Just bumped onto an interesting web article:

    http://blog.wingman-sw.com/archives/677

     
    Bogdan Golab
    Lead
    January 29, 2018
    Posted on January 29, 2018 at 07:50

    I have a right education if it comes to embedded programming (10 years of education + 3 years on the job training) and 5 years as an STM32 fan (home projects).

    But I call myself a hobbyist. Why?

    Because there is no replacement for professional experience - I mean working in the business environment among real professionals, solving real problems.

    So study the subject and try to find a job, study more and find better job with better people you can learn from.

    AvaTar
    Senior III
    January 29, 2018
    Posted on January 29, 2018 at 08:03

    ... what is the best way to reach my purpose ? 

    Technically, by either

    • getting hired in a company making products with STM32 controllers, or
    • opening your own business

    As others said here, working in a team methodically on a given project, with certain constraints (time/budget) is a bit different from doing hobby projects.

    But doing hobby projects is a good start already.

    Richard Lowe
    Senior II
    January 29, 2018
    Posted on January 29, 2018 at 08:29

    At one time, I sat at a table with some of the biggest CEOs in tech and real captains of the tech world. I had just graduated from school and was asking the same questions. I asked 'how can I become a really good developer', they kind of looked around at each other as if they were curious as well. I remember James Goslin was there and thought he was going to answer but another developer replied, 'I got this, 6000 hours'. He said there isn't any substitute for 'on task time'. They all seemed to be in agreement and Larry Ellison added, 'if I had a better solution, I'd be more wealthy than I am now'.

    That was about 8 years ago. From that experience, I can confirm, nothing substitutes for time well spent.

    My suggestion mirrors the others. Find a project for yourself. Don't have one in mind? A couple thousand opensource ones are waiting for people like you. Pound on the keyboard until your fingers ache. Use up your monthly limit of google searches researching code problems. 

    In the end of all that. You'll be a professional.
    Bogdan Golab
    Lead
    January 29, 2018
    Posted on January 29, 2018 at 11:23

    > time well spent

    Yes, it's really important. Interesting projects and experienced people you can learn from.

    LMI2
    Senior III
    February 1, 2018
    Posted on February 01, 2018 at 22:31

    Sometimes I think it is not the interesting projects. No one pays for them. Work is sometimes just work. You are sometimes paid for programming just what your boss wants.

    Vasile Guta_Ciucur
    Senior
    January 29, 2018
    Posted on January 29, 2018 at 11:44

    Continue using SPL. It is a hard way to become a professional, but you'll situate yourself at a much higher level than the ones using HAL or Arduino on top of HAL drivers. For newer microcontrollers, the replacement for the SPL is LL, but you have to put it to the test. I hear Iranian people have good technicians... I think it won't be a problem to get a good teacher/trainer/mentor.

    AvaTar
    Senior III
    January 29, 2018
    Posted on January 29, 2018 at 11:50

    Continue using SPL.

    And I migth add - study the Reference Manuals, to learn and understand how the peripherals work.

    Then try a project using them.

    Having read and understood one RM, reading others will come much more naturally.

    Auto-generated code a la CubeMX (and other, similar tools) is not the professional way to go - unless for superficial coding monkeys ...

    Bogdan Golab
    Lead
    January 29, 2018
    Posted on January 29, 2018 at 12:14

    I use CubeMX generated code all the time (both HAL and LL) and spend many hours to figure out why something does not work.

    If everything works fine you cannot learn anything. Since the HAL/LL do not work as expected you are forced to learn a lot before fixing the problem.

    So it seems that CubeMX may help in understanding how things work under the hood:)

    fdan00
    Visitor II
    January 29, 2018
    Posted on January 29, 2018 at 13:16

    Going through a program and having the right experience is definitely effective in getting you hired. 

    Short of that, having an impressive project will get you noticed and enhance your chance getting hired.

    As to cube vs. spl, with the right tools it doesn't matter. What's detrimental is to use those code directly in your project. Instead, mask them off with a middle layer of your own. And only call your layer. 

    So that in the future you can swap out the Hal or spl stuff transparently, or write your own. I started out with spl, and now most of the code I run is unchanged, except the underlying layer is most of my own code.

    Tesla DeLorean
    Guru
    January 29, 2018
    Posted on January 29, 2018 at 18:48

    The STM32F1 is a 10 year old product, best to branch out into newer families where rough edges have been addressed.

    The STM32 stuff is a fractional subset of what I know, I'm an EE with a Maths/Physics background, and majored in IC Design. Been programming micros since I was a teenager, and mostly self-taught in that regard.

    Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
    T J
    Senior III
    January 30, 2018
    Posted on January 30, 2018 at 01:07

    As a junior, I had a processor Reference manual under my arm to a few months, just reading and getting use to the functions inside the chip. These days the functionality is huge.

    Find an IDE that you can work with, I use VisualStudio and GDB, ( not free)

    Do you have a Scope ? Multimeter ? these instruments require some training.

    I use this one at home, TDS 2024, 4 channel color scope. great for anything upto about 200MHz

    did you look at designing your own board ? Kicad is very good.

    Actually, I have learned C over the last 6 years, and its almost identical work on my boards as it is on my server code.

    so you just need time to learn to code, then you will be able to work inside any system.

    I use the Cube and HAL, it is easy enough to make a board, program it, and debug step by step.

    ________________

    Attachments :

    T18.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hy5G&d=%2Fa%2F0X0000000b3n%2FwCSLixrEDIs5.gt_qfaTVmaDST7T.wiP3PnLI._iQOc&asPdf=false
    AVI-crak
    Senior
    February 1, 2018
    Posted on February 01, 2018 at 17:03

    You have wrong priorities, but your desire is very bright.

    You want to earn good money using stm programming as a tool. That's what you should do. For this, it is not necessary to be a great programmer - it is enough to create the things people need.

    Professional programmers are like writers, artists, bloggers and so on. They are all public. Each of them creates something, and it is interesting to people. Their work is a model for imitation, many people want to rise to the same level of enlightenment.

    For example: professional programmers of the company st have written HAL. And now a huge number of people write their programs using HAL.

    You need to choose: to be a publicly demanded professional programmer, or simply to make money.