Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Over the past years I learned about 14 programming languages (assembler phyton d

ID: 644042 • Letter: O

Question

Over the past years I learned about 14 programming languages (assembler phyton delphi qbasic c++ c# ruby perl - etc etc etc). However this was all out of my own interest, I didn't went to school for it.

Now without real education I am into a team with other programmers. We are into robotics with our work. In contrast to me they know about 2 languages and many frameworks I never had heard of before.

I don't really feel behind them, but they can surprise me and other times I can surprise them with solutions. The largest difference is that they have worked for years in the IT, while to me the programming part, is new and I enjoy it. But after the many languages I find it a bit hard to improve. Sometimes I see code (or tools) that are new to me.

I never used tools as anksvn, or did versioning or never had seen USB driver made in code, I got used to them, learned from them on projects and my colleagues. I started making money with code (without a real degree) the last 2 years.

Given that I haven't found any good YouTube channel or a book, that might improve my skills, how can I improve further?

My interests these days are C++ and C#. The point I loose interests if books start with the basics of "if then while for types objects" after 14 languages you get that.

Explanation / Answer

To elaborate on @MainMa's answer: Sounds like you're at the point that you should cultivate a much broader perspective on software development.

Learn a complete development "stack".
Will give you a point of reference as you run into other unfamiliar tools, frameworks, etc.
Development IDE
Unit Testing
i.e. a testing framework like NUnit (C#), JUnit (Java), etc.
software version control
learn a distributed model tool - Git, Mercurial
Continuous Integration
i.e. checking-in code automatically triggers ALL the tests.
The application is built every time, as part of the above
a tool like CruiseControl
scripting to make it "continuous" - Ant
Understand Functional programming paradigm
The formalisms of functional are becoming very main stream today.
C# evolution is clearly supporting functional programming
It is different from conventional OO thinking but is not mutually exclusive
IMHO, can help OO code:
reducing side effects - bugs
Adds flexibility to your software design
Develop at least a "conversational understanding" of
Agile, Test Driven Development, Behavior Driven Development, Functional Programming, Software as a service, Unit Testing, continuous integration, specific design patterns, ...
Focus study on architecture, design, design patterns
Learn to recognize these patterns in code. Practice, practice ...
Design needs drives pattern use. Don't force your code/design to fit into the pattern du jour
Object Oriented Design
Think OO everywhere in your code. Most code I've seen starts out OO and then falls apart quickly in the details. IMHO too many dev'ers really do not grok OO. Excel at this and stand out from the crowd.
Theory to Practical
No magic bullets to bridge the gaps, but I emphasize actual books over youtube. You need complete, cohesive, coherent content in depth.
You will have to read a lot to glean the gems.
2 Book every software developer should have
Code Complete. First and last. Get this book. Read it.
Also has an appendix of recommended books
Refactoring, Improving the design of existing code
Some of the Books that particularly helped me
Code Complete. Lots of very good, practical, detailed advice. For example, everyone says "write good code comments", but you will not until you read this book.
Head First Design Patterns
Head First Object Oriented Analysis & Design
Functional Programming in C#
XUnit Design Patterns
Brownfield Application Development in .NET

Dr Jack
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Chat Now And Get Quote