Did Mechanical/Chemical or other non computer engineering disciplines and ended up in a job which needs C++ coding? While reasons for ending in this situation can vary, however, how one’s career progresses from entering is still very much in ones own hand. In this short post, i am going to outline few key tips/ways one can get a head start in a job needing C1++ on daily basis without having any prior coding knowledge.
My own story is with a similar style. Studying Communications Engineering, i was mainly exposed to MATLAB Simulink and some Assembly related tools. Besides one theory course on C++ (had D+) i really didn’t get to work on C++ only until my first job as Test Development Engineer. Below are some ways/things i did to first get getting comfortable in C++ and having high chance of career growth.
Tip# 1: Get the Basics right from start
while on job, of course some experience personal going to guide you on fresh tasks and help you along. You might be giving a notion here/there that you are following on code at there pace. However, be mindful of where you stand. While it might be ok to nod your head to seem you are following, always make sure you get the understanding right offline. While a lot of your company code would look alien to you, always try to map the code into basic C++ elements (loops, vectors, pointers, classes) and establish linkages to basic theory. First this will look like a fruitless exercise, however, trust me as time passes it will pay dividends. A particular website i always find useful is http://www.cplusplus.com/doc/tutorial/to help me grasp my company existing code mapping to simpler elements in order to try to make sense of what is happening. I make a task to go through 11 chapters of this website while travelling 1hr daily on subway so that i can get basics right.
Tip# 2: Try to figure out what code could be doing and make sure you verify your understanding. The first thing you might want to learn is how to “cout” or output the results of code on a terminal so that you could see whether your understanding of code is correct. Sometimes i found, writing the code on paper and predicting output works as well. Several companies allow software like putty https://www.putty.org/installed to login to linux systems. Plz have one copy installed on your computer and start playing around with your existing codes you are shown to work on your initial days on your job. Trying various way/tweaks to working code and seeing the outcome in my opinion is the best way to learn. The time you reach a point where you play around with concepts not learned and still able to predict correct output (verified through actual output printing) is time to move on to next learning :).
Tip# 3: Always go beyond what is asked for task. Somehow linked to tip# 2 on trying/playing around on codes, this applies to each task you are assigned. While one might be able to edit/create a small function to get the desired output done. Always try to map out few level down what are starting/ending of code you working on. I like to give a good example here. Say you are working on some function of class to get job done, doing some small manipulation to print something etc. While the job could be done in your earlier days through help of your mentor who has pointed out already which function to look at. However, once done at end of day try to explore definition of class in header file (.h) See what are other supported functions the class has to offer? Who uses those other variables/functions. By doing this extra effort, you are going to build on exponential knowledge that will start to come in handy for your future tasks. Over period of time, by doing small tasks on various portions of program you would start to grasp some overall view of code. This will help you better arrive at piece of code on your next task as well as help you grasp whats overall program is doing.
Tip #4: Make Tags
There is utility that i believe is embedded in with C++ compilers and work with viewing tools like GVIM https://www.vim.org/If your work doesn’t support, try Google it up and set it up if possible. By creating Tags of your program, you could trace code in a much faster way to reach at targeted code you might be looking for. This is much faster that typing each thing you want to find in source directory every time and see which file it could be and then opening it.
This ends my post for now. I would like disclaim that these tips represent my view of things and how they have worked out for me. Of course, different people might have differences in approach however building sound basics fro start is always important.
If you have any comments/suggestions, plz help to leave it on comment sections. If you would need any help in any aspect, don’t hesitate to reach out to me as well.