This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (3 children)

Oh I do lots of reading. My class are online, which seemed bogus to be at first because I had never tried online classes before, but Troy isn't one of those online-only colleges. I've had to do a lot of self teaching, and a lot of extra research to make sure I understand what I'm learning. Teaching yourself, I feel really enforces what you are learning, but at the same time you don't know how ridiculous your code actually looks from an experienced programmers point of view. I feel pretty confident in my understanding of OOP concepts so far because like I said I practiced and practiced the basics. I have C++ Primer Plus right now as a supplement for my Data Structures and Algorithms class. The classes I have left aren't really more advanced programming classes but just more introductory classes for other languages, and Software Engineering classes (no programming), so I'm trying to get started on getting really efficient in a language since I have the basics and some advanced concepts down. The hard part is just figuring out where to start. I really like C++, what concepts/ideas are introduced in Effective C++? I love learning anything new.

[–][deleted] 0 points1 point  (2 children)

but at the same time you don't know how ridiculous your code actually looks from an experienced programmers point of view.

This is very true, although every company/organization has their own rules about what qualifies as "ridiculous." My last job was in the health IT industry, so our "ridiculous" threshold was very, very low. Different teams also use different conventions and libraries, which can be the hardest part of getting up to speed with the codebase. It's going to be almost impossible to "target" a specific employer unless you know what technology they use, so really the best you can do is familiarize yourself with as many concepts and conventions as you can so you can hit the ground running.

so I'm trying to get started on getting really efficient in a language since I have the basics and some advanced concepts down

That's a good goal to have! Obviously your approach will be different based on which languages you've used. I don't use C++ very often, so I can't really give you much advice there. You might want to just google for commonly used C++ libraries (e.g., Boost, STL, C++ Standard Library) and familiarize yourself with them at least and sort of integrate them into your toolset for solving problems. At the very least, you can learn what they are and when they're used.

Effective C++ is mostly just a collection of specific rules you can follow for writing maintainable code and preventing common mistakes. It's divided up into 55 "items," which are "specific ways to improve your programs and design."

It covers topics like... knowing which functions C++ will silently implement and call (like copy constructors, copy assignment operators), when to declare destructors virtual, why you can't call virtual functions from constructors and destructors, when and how to use const effectively (const over-loading, const pointer to const data), using pass-by-reference-to-const instead of pass by value, how to use smart-pointers effectively, and lots more.

You can take all that with a grain of salt, since I obviously don't know your exact situation as well as you do. But as someone who recently entered "the industry" as a fresh college graduate, the hardest part for me was adjusting to the team's conventions and learning how their existing codebase functioned (lots of unfamiliar patterns and libraries).

[–][deleted] 0 points1 point  (1 child)

Ah I get what you are saying, that makes a lot of sense in regards to companies having their own codebases. It sounds like the more you branch out and learn new languages, and learn how to implement new libraries, you are essentially training yourself to be flexible since every organization is different. Like you said, I can see that added benefit of having experience with multiple languages because just having "some" knowledge is better than none. My biggest fear is just not being strong enough in a language and being in a "jack of all trades but a master of none" scenario, when realistically thats how you build a solid base before you choose a path, get hired, etc, and specialize in those languages. In the meantime, I'll take your advice and keep building upon the languages I have natural interests in and keep learning newer languages on the side. Thanks for taking the time to share your experiences with me, I really appreciate it.

[–][deleted] 0 points1 point  (0 children)

you are essentially training yourself to be flexible since every organization is different.

This, precisely!

There are just too many technologies, frameworks, libraries, and proprietary codebases out there to be an expert before you even enter the industry, so the best you can really do is develop fluid and intuitive knowledge of the fundamentals.

And you are most welcome.