|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On December 18 2015 05:54 netherh wrote: I finally got a proper job as a C++ programmer a few weeks ago. Does anyone have any tips for learning and understanding large code-bases? I don't really want to keep having to ask other people how things work in the code base, but that often seems to be the quickest way.
I've also been experiencing the frustration of other people's bad code. I'd want to re-write certain things (and I have to change bits of it anyway), but it's just so hard to change anything without breaking other stuff that shouldn't even be relevant. It seems like the best (least painful and least time-consuming) choices I can make just isolate and remove my own code as much as possible from what's already there. Which doesn't really seem right. Maybe I'm just being too anal about things.
I suspect the only solution is to make damn sure that people only commit clean code to start with. Which I guess means having strict standards and conventions, and code reviews.
Learn how to use a debugger. Don't mindlessly read pages of code and guess variable meaning. Use breakpoints to figure out the exact value of variables at certain stages in execution. A sufficiently trained programmer using a debugger can modify or fix code in any size code base without knowing 90% of it.
Also, never shy away from asking how something works. Ten out of ten times, you'll find out that the class or function actually solves a completely different problem than you were even thinking about when you read it.
|
|
On December 17 2015 18:26 Cynry wrote: Yeah well we're far from 'just tidying up' anything here. From the respone I got here, it seems that everyone thinks I'm some kind of psycho-rigid refactoring maniac. And it might very well be true, but that's not what's happening now. Fair enough I wasn't even responding to you necessarily, just sharing a life lesson that was particularly difficult for me to learn
|
On December 18 2015 01:52 Cynry wrote: Want a job Manitou ? :D
You offering? I'm currently debating a change in my work environment with new year coming up and all
|
Meh, it's Meteor, so javascript is all over our database, and even (hold on tight) our security. Not sure how you'd like it :D Seriously though, it's an awesome project, but we're not quite ready to hire yet. At the rate it is going so far and if we don't crowdfund anything, it could take a while...
|
No worries. Got plenty of offers on hand Currently trying to ascertain if working on interpreter optimization is something I'd like to pursue. The thing is that I don't have enough info to judge it yet since all I know is that this "interpreter" is changing "something" into some SQL procedures or something like that... Guess it's written in C/C++ too.
In other news, my boss has just assigned a new project to me, which means that I'm now officially working on 6 different projects at the same time. Core functionality in 3 of them and major bugfixing in 3 other. FML
|
What's the best approach according to you guys to learn C/C#/C++/Java on your own? Or any language really.
Reason I'm asking this is because after working my ass off for a couple of years I decided to go back studying, either application development (+AI (or functional programming) & game development) or just game development (which limits my options on the market obviously), and I still have more than 6 months to learn things on my own and I just want to learn as much as possible in terms of programming before the time arrives where I can call myself a student once again.
|
I suggest you work on your basics. That's what you'll be using most of the time and strong fundamentals are always good (especially that they often translate well into other languages).
You can always go here -> http://www.chiark.greenend.org.uk/~sgtatham/puzzles/ pick a puzzle and try to do it all on your own in your language of choice. Then pick another, so on and so forth. This way you'll develop really good core skills for some typical problem solving. You don't really need to make a working puzzle (that would be great). Just figuring out stuff like how to build the initial board, how to check for solution etc. should give you plenty to work with (try implementing an algorithm that creates big minesweeper board with mines and clues for example).
|
On December 21 2015 06:32 pEcul!Ar wrote: What's the best approach according to you guys to learn C/C#/C++/Java on your own? Or any language really.
Reason I'm asking this is because after working my ass off for a couple of years I decided to go back studying, either application development (+AI (or functional programming) & game development) or just game development (which limits my options on the market obviously), and I still have more than 6 months to learn things on my own and I just want to learn as much as possible in terms of programming before the time arrives where I can call myself a student once again. Lots of practice (doesn't matter a whole lot what you code, just code something) and good books. Don't rely on internet tutorials, lots of bad advice in there. Use google/stackoverflow to find solutions to specific problems. Don't try to go straight for stuff like AI or game development. You'll need the fundamentals down first.
|
On December 21 2015 06:56 spinesheath wrote:Show nested quote +On December 21 2015 06:32 pEcul!Ar wrote: What's the best approach according to you guys to learn C/C#/C++/Java on your own? Or any language really.
Reason I'm asking this is because after working my ass off for a couple of years I decided to go back studying, either application development (+AI (or functional programming) & game development) or just game development (which limits my options on the market obviously), and I still have more than 6 months to learn things on my own and I just want to learn as much as possible in terms of programming before the time arrives where I can call myself a student once again. Lots of practice (doesn't matter a whole lot what you code, just code something) and good books. Don't rely on internet tutorials, lots of bad advice in there. Use google/stackoverflow to find solutions to specific problems. Don't try to go straight for stuff like AI or game development. You'll need the fundamentals down first.
Thx for the fast reply.
Well, at college obviously they get the basics down first, but I feel like it's only going to benefit me if I can already start learning right now. AI & game development are optional things (can pick 2 out of a list of.. 8 things: Artificial Intelligence/ Big data/ Functional programming/ Game development/ Internet of things/ User experience/ Robotics/ Unified Communication) <- that's if I'd go to the college where I can go for application development.
The other college has a department purely focused on game development with 4 ways you can choose from (3D Production & VFX - Game Graphics Production - Game Development - Independent Game Production) - http://www.digitalartsandentertainment.be/page/14/Course overview
|
On December 21 2015 06:56 spinesheath wrote: Lots of practice (doesn't matter a whole lot what you code, just code something) and good books. Don't rely on internet tutorials, lots of bad advice in there. Use google/stackoverflow to find solutions to specific problems. Don't try to go straight for stuff like AI or game development. You'll need the fundamentals down first. I kind of disagree with 'don't try to go straight for stuff like AI or game development'. I mean, yes, it's important to know what a loop is, and how to open a file - but once you've done those things once, I have a hard time seeing the value in 'practicing' coding. My first project that taught me anything at all was a little ASCII-graphics game engine, and it was only worth anything to me because I really wanted that damn thing to work and make an actual playable level out of it. I never learned anything that stuck from messing around on Project Euler on and off for a couple months, or from online tutorials. But your mileage may vary - that's just what worked for me
|
On December 21 2015 07:08 pEcul!Ar wrote:Show nested quote +On December 21 2015 06:56 spinesheath wrote:On December 21 2015 06:32 pEcul!Ar wrote: What's the best approach according to you guys to learn C/C#/C++/Java on your own? Or any language really.
Reason I'm asking this is because after working my ass off for a couple of years I decided to go back studying, either application development (+AI (or functional programming) & game development) or just game development (which limits my options on the market obviously), and I still have more than 6 months to learn things on my own and I just want to learn as much as possible in terms of programming before the time arrives where I can call myself a student once again. Lots of practice (doesn't matter a whole lot what you code, just code something) and good books. Don't rely on internet tutorials, lots of bad advice in there. Use google/stackoverflow to find solutions to specific problems. Don't try to go straight for stuff like AI or game development. You'll need the fundamentals down first. Thx for the fast reply. Well, at college obviously they get the basics down first, but I feel like it's only going to benefit me if I can already start learning right now. AI & game development are optional things (can pick 2 out of a list of.. 8 things: Artificial Intelligence/ Big data/ Functional programming/ Game development/ Internet of things/ User experience/ Robotics/ Unified Communication) <- that's if I'd go to the college where I can go for application development. The other college has a department purely focused on game development with 4 ways you can choose from (3D Production & VFX - Game Graphics Production - Game Development - Independent Game Production) - http://www.digitalartsandentertainment.be/page/14/Course overview
You could do an online course, like Khan Academy or freecodecamp(Web dev mainly). Harvard offer a free course too in computer science. Michigan too with python.
|
For Python you can just buy the Black Hat Python book and learn actual practical stuff right off the bat (and cool stuff too). This book teaches you how to write your own netstat programs, trojans etc. (by chapter 3 you're already building programs that crack passwords on web pages written in joomla, bypassing CSRF protection). Nifty way to learn if you ask me.
|
I strongly urge you to not go to a school that focuses purely on game development. On average in the game industry as a programmer, compared to virtually any other industry as a programmer, you will:
- earn less
- work longer hours
- have significantly
- burn out faster (see above)
The exception being some parts of the finance industry. In that case as a game developer you will just earn like 3-4x less, but have potentially better hours. Game programming has a problem, in that too many people want to do it.
That said, if it is truly your passion, have at it. Just bear in mind the above.
|
On December 21 2015 11:35 phar wrote:I strongly urge you to not go to a school that focuses purely on game development. On average in the game industry as a programmer, compared to virtually any other industry as a programmer, you will: - earn less
- work longer hours
- have significantly
- burn out faster (see above)
The exception being some parts of the finance industry. In that case as a game developer you will just earn like 3-4x less, but have potentially better hours. Game programming has a problem, in that too many people want to do it. That said, if it is truly your passion, have at it. Just bear in mind the above.
Yeah, I'm aware of the current problems/issues with the gaming industry, which is why I'm opting to go for app dev and taking game dev as one of the optional choices along the way. Another option is software dev (and 2 courses you can choose from the list I mentioned).
|
On December 21 2015 07:14 Cyx. wrote:Show nested quote +On December 21 2015 06:56 spinesheath wrote: Lots of practice (doesn't matter a whole lot what you code, just code something) and good books. Don't rely on internet tutorials, lots of bad advice in there. Use google/stackoverflow to find solutions to specific problems. Don't try to go straight for stuff like AI or game development. You'll need the fundamentals down first. I kind of disagree with 'don't try to go straight for stuff like AI or game development'. I mean, yes, it's important to know what a loop is, and how to open a file - but once you've done those things once, I have a hard time seeing the value in 'practicing' coding. My first project that taught me anything at all was a little ASCII-graphics game engine, and it was only worth anything to me because I really wanted that damn thing to work and make an actual playable level out of it. I never learned anything that stuck from messing around on Project Euler on and off for a couple months, or from online tutorials. But your mileage may vary - that's just what worked for me  Those are not what I mean by fundamentals. You can learn you basic language constructs in a couple of days, and you can google how to open a file in a couple of seconds. You have to become competent at writing clean(-ish) code, cleaning up existing code, refactoring, designing interfaces, properly encapsulating information, separating concerns, applying abstract algorithms... All of these mostly come with practice, critically reviewing and refactoring code you wrote a month ago, and regularly reading books and articles (and code) written by good programmers.
|
Look what awesome gem I've found today! 
protected $protected = false;
|
Do you guys read books for problem solving/logical thinking in programming? Or do you rely on experience?
|
On December 22 2015 03:29 darkness wrote: Do you guys read books for problem solving/logical thinking in programming? Or do you rely on experience? Mostly experiance, I geuss that failing often enough gives a you a good indication as to what works and what doesn't.
|
On December 22 2015 03:03 Manit0u wrote:Look what awesome gem I've found today!  protected $protected = false; As if anybody needs reminding that php sucks.
|
|
|
|