If you like DNray Forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...

 

Importance of Learning C and C++ for a Career

Started by solomankane, Mar 18, 2023, 12:08 AM

Previous topic - Next topic

solomankaneTopic starter

In order to get promoted in the field of production automation, industrial robots, and CNC machines, one needs to learn a programming language. The future boss suggested learning a language from the C family (C, C++, C#) or another in-demand language. However, for someone with zero experience in programming, it may be challenging to decide which language to take up.



Could you please advise me on which language I should choose? I have until the summer to learn it, and I only need an average level of knowledge. Additionally, it would be great if you could suggest any additional resources or tips to help me learn faster and more efficiently.
  •  


sahilmobiloitte

When it comes to working with machines, C or C++ are the most suitable but not the easiest to learn. The inclusion of pointers and memory allocation often leads to difficulties. Although C is easier to learn, larger projects are better developed in C++, especially when it comes to OOP. C# is an easier alternative as there's no need to concern oneself with memory, pointers, and robust support on MSDN. However, knowledge of OOP is critical.

Selecting the best language to learn within a short timeframe would be tough since good knowledge only comes with experience. This is also true for other languages.

Considering that the focus is on "automation of production, industrial robots, and CNC machines," C/C++ is the clear choice when programming for hardware. But for automation and desktop software development, including forms and databases, C# may be the better option.

It's challenging to suggest another in-demand language as it's the skills of the programmers that are sought after, rather than languages themselves. Ultimately, selecting the appropriate language depends on the task at hand.
  •  

vingler

The differences between C++, C, C#, and ObjecC lie in their solutions to specific problems. While some individuals may be apprehensive of "pointers" and manual memory management, experienced developers do not consider these to be problems.

With three months of immersion in C, you can quickly transition to C++ and learn OOP techniques before progressing to C#. In just a week, you can acquire in-depth knowledge of the complexities and garbage collector associated with C#.

For those interested in becoming polymorphic si-monsters, spending a month on ObjC (with a primary focus on MAC OS and iOS development) is recommended.
  •  

Mississauga

The language "C" is slightly more advanced than assembly language, although it's not widely used today. However, its niche is still significant and includes embedded devices, *nix systems, programming languages for some controller systems (e.g., WinCC). Moreover, the syntax and organization of "C" have influenced many other languages, such as C#.

"C++" expands on the capabilities of "C" by enabling object-oriented programming, but it has become a group of languages with numerous technologies.

"C#" is Microsoft's response to Java and uses Mono as its basis. Its popularity has been limited mainly to a specific office branch, and its future prospects are uncertain.

As for choosing a language, C++ is recommended since it's based on "C," and it's simple to learn how to program in something like C# if needed. However, C++ requires a higher level of expertise, is in high demand and has more requirements.
  •  

patricka

The C family refers to the group of programming languages that share similar properties, including the use of curly brackets {} to highlight functional blocks. Many popular languages are object-oriented, such as C++, C#, and Java. However, not all languages are strongly typed, like C. While several common languages, including Python, Perl, PHP, and Ruby, have been influenced by the C family, the degree and importance of this influence vary.

By learning one of the C languages, such as C, you obtain a solid understanding of fundamental concepts in programming that are useful across industries. Moreover, studying one of the C languages makes it easier to learn the other languages in the family. Although mastering a programming language takes considerable practice, once you understand one of the C languages, switching to a different paradigm becomes easier.

Typically, developers only need to study one of the C languages, depending on their company's specific requirements or area of expertise. For instance, people working with Microsoft products usually work with C#, while those developing Android apps should learn Java. Alternatively, if you're creating embedded systems, C could be the best choice. Overall, learning a C language helps foster correct programming thinking, facilitating better learning of other languages and paradigms.
  •  

gulshan212

Hello this is Gulshan Negi
Well, learning C and C++ can be highly advantageous for a career in programming and software development.These languages give areas of strength for an in programming ideas, low-level tasks, and memory the board. These all languages are frequently utilized in aerospace, automotive, gaming, embedded systems, high-performance applications, and systems programming. 
Thanks 
I am an Engineer. I completed my engineering in Computer Science & Engineering. I am a Web & App Developer. I like playing cricket and volleyball.
  •  

holoman

However, in the field of production automation, industrial robots, and CNC machines, learning a language from the C family (C, C++, C#) or another in-demand language would be beneficial.

The C family of languages, particularly C++ and C#, are widely used in the industry for programming embedded systems, controlling industrial robots, and developing software for CNC machines. These languages offer lower-level control and high performance, which are essential for working with automation technologies.

If you're starting from scratch, learning C++ can be a good choice as it is a powerful and versatile language that many industrial automation systems rely on. C++ is also widely used in various domains beyond automation, making it a valuable skill to have.

Alternatively, if you want to focus more on software development for automation systems and user interfaces, learning C# is a good option. C# is a high-level language known for its simplicity and is commonly used in applications that involve graphical user interfaces.

Besides the C family, other languages such as Python and Java also find applications in automation and robotics. Python, known for its simplicity and readability, is often used for scripting, prototyping, and higher-level automation tasks. Java, on the other hand, is popular for developing software solutions that work across different platforms.

Here are some more details about each programming language and their applications in the field of production automation, industrial robots, and CNC machines:

1. C: C is a low-level programming language that provides direct access to hardware and is often used for developing firmware or controlling microcontrollers. It is foundational and understanding it can be beneficial when working with embedded systems.

2. C++: C++ is an extension of the C language and is widely used in industrial automation. It offers object-oriented programming features, high performance, and low-level control. C++ is commonly used for programming robotic systems, writing control algorithms, and developing software for PLCs (Programmable Logic Controllers).

3. C#: C# is another language from the C family, but it is more commonly used for software development with a focus on user interfaces. It is used to build applications that interact with automation systems and control interfaces for CNC machines and industrial robots. C# is also utilized in designing HMI (Human-Machine Interface) software.

4. Python: Python is a high-level, versatile programming language known for its simplicity and ease of use. It has gained popularity in automation and robotics due to its readability, extensive libraries, and support for rapid prototyping. Python is often used for scripting, data analysis, and higher-level automation tasks.

5. Java: Java is a general-purpose programming language that runs on different platforms. While not as commonly used in industrial automation as the C family or Python, it is still widely employed for developing cross-platform applications, control programs, and communication interfaces.

6. MATLAB: While not part of the C family, MATLAB is widely used in various engineering fields, including automation and robotics. It offers powerful numerical computing capabilities and has a vast range of toolboxes for tasks such as control system design, image processing, and simulation. MATLAB is often used for algorithm development, data analysis, and modeling in automation systems.

7. LabVIEW: LabVIEW is a graphical programming language specifically designed for measurement and automation systems. It uses a visual programming approach called "G" programming, where you connect visual elements (nodes) to create programs. LabVIEW is commonly used in industrial automation, robotics, and testing environments to develop control systems, data acquisition, and monitoring applications.

8. SQL: Structured Query Language (SQL) is a domain-specific language used for managing and manipulating relational databases. In the context of automation and robotics, SQL is useful for data management and logging, storing configuration settings, and interacting with databases for real-time process monitoring or interfacing with manufacturing execution systems (MES).

9. PLC Programming Languages: Programmable Logic Controllers (PLCs) are widely used in industrial automation for controlling and monitoring equipment and processes. PLC programming languages such as ladder logic, function block diagram, and structured text are specific to PLC programming and are typically used in combination with other languages like C++ or C# for developing control logic for manufacturing systems.

10. Assembly Language: Assembly language is a low-level programming language that is specific to the architecture of the underlying hardware. It is used for direct manipulation and control of hardware components, making it valuable when working with microcontrollers or developing firmware for embedded systems.

11. VHDL/Verilog: VHDL (Very High-Speed Integrated Circuit Hardware Description Language) and Verilog are hardware description languages used for designing and testing digital circuits. These languages are commonly used in the development of Field-Programmable Gate Arrays (FPGAs) and Application-Specific Integrated Circuits (ASICs), which are used in automation and robotics systems.

12. Swift: Swift is a programming language primarily used for developing iOS and macOS applications. While not directly associated with production automation or industrial robots, Swift can be useful if you are developing software applications or interfaces for automation systems that integrate with Apple platforms.

13. Ruby: Ruby is a dynamic, object-oriented programming language that emphasizes simplicity and productivity. It may not be as commonly used in industrial automation specifically, but it has a strong community and extensive libraries, making it suitable for tasks such as scripting, automation, and web development.

14. Ada: Ada is a statically-typed, high-level programming language that was designed for critical systems, including those found in industrial automation. Ada emphasizes reliability, safety, and maintainability, making it suitable for developing software for automation and control systems.

15. JavaScript: JavaScript is a widely-used programming language primarily used for web development. While not directly associated with production automation, industrial robots, or CNC machines, it can be useful if you are developing web-based interfaces or applications that interact with automation systems.

16. Kotlin: Kotlin is a modern, statically-typed programming language that runs on the Java Virtual Machine (JVM). It is gaining popularity in the industry and can be used for developing control software, automation applications, or user interfaces that integrate with existing automation systems.

17. Go: Go, also known as Golang, is a statically-typed programming language developed by Google. It is designed for simplicity, efficiency, and scalability, making it suitable for building robust and high-performance applications for automation and robotics.

18. Rust: Rust is a systems programming language that focuses on safety, concurrency, and performance. While not commonly used in automation and robotics, Rust's emphasis on memory safety and its ability to develop low-level applications with high performance make it worth considering for specific use cases.
  •  



If you like DNray forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...