• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 10:29
CEST 16:29
KST 23:29
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Code S Season 1 - RO8 Preview1[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16[ASL21] Ro16 Preview Pt2: All Star10
Community News
Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event11Code S Season 1 (2026) - RO12 Results12026 GSL Season 1 Qualifiers25Maestros of the Game 2 announced9
StarCraft 2
General
Code S Season 1 - RO8 Preview Behind the Blue - Team Liquid History Book Weekly Cups (April 27-May 4): Clem takes triple Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool Code S Season 1 (2026) - RO12 Results
Tourneys
GSL Code S Season 1 (2026) Sparkling Tuna Cup - Weekly Open Tournament RSL Revival: Season 5 - Qualifiers and Main Event StarCraft Evolution League (SC Evo Biweekly) 2026 GSL Season 2 Qualifiers
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players [M] (2) Frigid Storage
External Content
Mutation # 524 Death and Taxes The PondCast: SC2 News & Results Mutation # 523 Firewall Mutation # 522 Flip My Base
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ (Spoiler) Asl ro8 D winner interview BW General Discussion Do we have a pimpest plays list? AI Question
Tourneys
[ASL21] Ro8 Day 4 [ASL21] Ro8 Day 3 [Megathread] Daily Proleagues [ASL21] Ro8 Day 2
Strategy
Simple Questions, Simple Answers Fighting Spirit mining rates What's the deal with APM & what's its true value Any training maps people recommend?
Other Games
General Games
Dawn of War IV Stormgate/Frost Giant Megathread OutLive 25 (RTS Game) Daigo vs Menard Best of 10 Nintendo Switch Thread
Dota 2
The Story of Wings Gaming
League of Legends
G2 just beat GenG in First stand
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
European Politico-economics QA Mega-thread US Politics Mega-thread Russo-Ukrainian War Thread 3D technology/software discussion Canadian Politics Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread Formula 1 Discussion McBoner: A hockey love story
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Movie Stars In Video Games: …
TrAiDoS
ramps on octagon
StaticNine
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1416 users

The Big Programming Thread - Page 192

Forum Index > General Forum
Post a Reply
Prev 1 190 191 192 193 194 1032 Next
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.
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
November 13 2012 23:34 GMT
#3821
On November 14 2012 08:28 meatpudding wrote:
Show nested quote +
On November 14 2012 07:52 KaiserJohan wrote:
On November 13 2012 08:37 Nausea wrote:
Okay so I started writing this assetmanager singleton class, with a map storing a string and an image. The problem is that the image is stored as a pointer in the map and adding it to the map is going fine, however when i try to get the function to return the pointer the compiler does not complain but the program shuts down when the pointer is returned as NULL.

Help! :/


NVM I solved it, I tried doing it->second, and instead I now did ImagesList.find(filename)->second

that did the trick. Thank you all for your help


Now I'm mainly speaking from a C++ perspective but:
Drop the singleton design, instead build your system in such a way as to avoid globals as much as absolutely possible. It forces you to think and create healthy software design, because sooner or later the singleton and stuff like it will bite you. Your object should have a clear purpose and their scope and visibility as limited as possible and also avoid coupling between systems.



I would like to ask how you suggest doing this?

Imagine different Entity types need access to the AssetManager. With globals or singleton you can do something like this (Assume myImage is inherit from Entity and myImageResourceName identifies the unique resource)


// For the projectile class
void Projectile::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}

// For the shrubbery class
void Shrubbery::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}



How would you avoid AssetManager being global in this case?


Don't know which language, so pseudocode:

Projectile::constructor(AssetManager am) { this,assetManager = am; }
Projectile::Load() { this,assetManager.GetResource(imageName); }
NukeTheBunnys
Profile Joined July 2010
United States1004 Posts
November 14 2012 00:21 GMT
#3822
I love hearing people blindly saying you should not use globals. Its one of those things that gets taught in schools and blindly accepted. Globals are fine when used correctly, people are taught not to use them because they present some risk to maintainability especially when they are used in the wrong context.

As for your loading problem, this is a poor case to do lazy loading. If you are running your game loop and you need a resource for the first time you do not want to incur the cost of going to disk to load it because it would make your frame drop and make the controls feel inconstant/lagy. This is why games have loading times at the start of a level, they are pulling all the resources into memory ahead of time so they do not have to take that hit in the middle of game play.

That all being said you also have to consider the total memory foot print of your program. This is a very complicated topic, but overly simplified: you want it as small as possible. For this reason only load what you need into memory at the start of a level, and unload it when it is no longer needed.
When you play the game of drones you win or you die.
Kich
Profile Joined April 2011
United States339 Posts
Last Edited: 2012-11-14 00:32:44
November 14 2012 00:29 GMT
#3823
On November 14 2012 07:52 KaiserJohan wrote:
Show nested quote +
On November 13 2012 08:37 Nausea wrote:
Okay so I started writing this assetmanager singleton class, with a map storing a string and an image. The problem is that the image is stored as a pointer in the map and adding it to the map is going fine, however when i try to get the function to return the pointer the compiler does not complain but the program shuts down when the pointer is returned as NULL.

Help! :/


NVM I solved it, I tried doing it->second, and instead I now did ImagesList.find(filename)->second

that did the trick. Thank you all for your help


Now I'm mainly speaking from a C++ perspective but:
Drop the singleton design, instead build your system in such a way as to avoid globals as much as absolutely possible. It forces you to think and create healthy software design, because sooner or later the singleton and stuff like it will bite you. Your object should have a clear purpose and their scope and visibility as limited as possible and also avoid coupling between systems.



Singletons are perfectly fine, you just need to legitimately understand how to use them. If anything, for a side project, it's probably better he experiences the first hand the limitations and requirements of using the singleton pattern.

Anyways, to post a general question:

I am looking to start learning Objective C for iPad development, but I am not thrilled about Apple's tutorials for this (I'd really rather not spend 8 hours dragging and dropping things), does anyone have a suggestion for a good place to start learning?
AcTiVillain
Profile Joined November 2010
Australia81 Posts
November 14 2012 01:09 GMT
#3824
On November 12 2012 14:24 ninjamyst wrote:
I am currently a Software Architect at a mid-size Healthcare IT firm. Straight out of college, we pay $55-$60k. 2-3 years of experience will get you $75-$85k. 4-6 years of experience, you are looking at $90-$110k. That doesn't include year-end bonus of $5-$20k. This is in a major city, and we primarily use Microsoft technology....so C#, ASP.NET, SQL Server 2008, etc. We don't care if you memorized definitions, and we dont give you stupid brain teasers during our interviews. We hire based on your problem solving skills and your object oriented design experiences. We will ask you to take a simple every day concept and break it down into classes/methods/properties. For example, how would you represent a baseball game in code? We dont hire specifically for front end vs database vs business logic. As part of our small development team, you will do all of those things. You will learn how to create GUI, how to create business objects, how to maintain databases.

For those of you in college now, the best way to impress is to be involved in side projects outside of school. Most schools don't even teach C# or PHP or Ruby; they only teach Java or C++. When we look at college resumes, everyone takes the same classes, do the same senior projects, and etc. We look for people that wrote their own mobile app, engaged in engineering competitions, did side projects for fun, learned a language outside of class, and etc.

Most importantly, we look for people with strong communication skills. Too often, we get people obsessed with technical stuff only, and they lack social skills. In a team environment, you need to be able to express your ideas to your peers. In design sessions, you need to be able to clearly explain your logic and your reasoning. If we can't understand you, we can't hire you even if you can create the fastest algorithm.


That sounds amazeballs.

I did make an iphone game during my time at Uni and do some extra cirricular volunteer work though. You think that warrants a $50k Salary?
Craton
Profile Blog Joined December 2009
United States17281 Posts
November 14 2012 01:46 GMT
#3825
It could.

YMMV.
twitch.tv/cratonz
tec27
Profile Blog Joined June 2004
United States3702 Posts
November 14 2012 04:09 GMT
#3826
On November 14 2012 09:21 NukeTheBunnys wrote:
I love hearing people blindly saying you should not use globals. Its one of those things that gets taught in schools and blindly accepted. Globals are fine when used correctly, people are taught not to use them because they present some risk to maintainability especially when they are used in the wrong context.

Its not so much maintainability as it is testability where globals cause issues. It is much better for testing to explicitly specify what your class' dependencies are and pass them in, than for a class to assume that a global variable of a specific type is set and initialized properly and utilize that (and in many cases having a global dependency makes it hard/impossible to replace with a stubbed version of the dependency). It also makes your code flow and initialization of objects much more straight-forward and easy to follow. Yes, they're fine when used in the right situations, but there are very few situations where that's the case.
Can you jam with the console cowboys in cyberspace?
AcTiVillain
Profile Joined November 2010
Australia81 Posts
November 14 2012 04:23 GMT
#3827
On November 14 2012 13:09 tec27 wrote:
Show nested quote +
On November 14 2012 09:21 NukeTheBunnys wrote:
I love hearing people blindly saying you should not use globals. Its one of those things that gets taught in schools and blindly accepted. Globals are fine when used correctly, people are taught not to use them because they present some risk to maintainability especially when they are used in the wrong context.

Its not so much maintainability as it is testability where globals cause issues. It is much better for testing to explicitly specify what your class' dependencies are and pass them in, than for a class to assume that a global variable of a specific type is set and initialized properly and utilize that (and in many cases having a global dependency makes it hard/impossible to replace with a stubbed version of the dependency). It also makes your code flow and initialization of objects much more straight-forward and easy to follow. Yes, they're fine when used in the right situations, but there are very few situations where that's the case.


I agree, Globals make unit testing trickier. Avoid if you can, but use them if you need a quickfix.
frogmelter
Profile Blog Joined April 2009
United States971 Posts
November 14 2012 04:26 GMT
#3828
I was asked this question for an interview and I've been wondering about it for a few weeks.

Rank each device from highest electricity consumption to lowest.

Normal Hard Drive, SSD, USB Flash Drive, RAM

My order of ranking and reasoning:

1) Hard Drive - has to spin at thousands of RPM
2) SSD - Bigger than the other two smaller components of memory [RAM and USB]
3) USB Flash Drive - A usb port can supply up to 5v iirc?
4) Ram - Takes like... 1.5v?

I'm not sure about the last two. Does a USB drive take more electricity or RAM?
TL+ Member
chaokel
Profile Blog Joined October 2010
Australia535 Posts
Last Edited: 2012-11-14 04:59:00
November 14 2012 04:57 GMT
#3829
On November 14 2012 08:34 Morfildur wrote:
Show nested quote +
On November 14 2012 08:28 meatpudding wrote:
On November 14 2012 07:52 KaiserJohan wrote:
On November 13 2012 08:37 Nausea wrote:
Okay so I started writing this assetmanager singleton class, with a map storing a string and an image. The problem is that the image is stored as a pointer in the map and adding it to the map is going fine, however when i try to get the function to return the pointer the compiler does not complain but the program shuts down when the pointer is returned as NULL.

Help! :/


NVM I solved it, I tried doing it->second, and instead I now did ImagesList.find(filename)->second

that did the trick. Thank you all for your help


Now I'm mainly speaking from a C++ perspective but:
Drop the singleton design, instead build your system in such a way as to avoid globals as much as absolutely possible. It forces you to think and create healthy software design, because sooner or later the singleton and stuff like it will bite you. Your object should have a clear purpose and their scope and visibility as limited as possible and also avoid coupling between systems.



I would like to ask how you suggest doing this?

Imagine different Entity types need access to the AssetManager. With globals or singleton you can do something like this (Assume myImage is inherit from Entity and myImageResourceName identifies the unique resource)


// For the projectile class
void Projectile::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}

// For the shrubbery class
void Shrubbery::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}



How would you avoid AssetManager being global in this case?


Don't know which language, so pseudocode:

Projectile::constructor(AssetManager am) { this,assetManager = am; }
Projectile::Load() { this,assetManager.GetResource(imageName); }


Is this not almost exactly how a singleton works?

You create an instance of it once, assign the this pointer and from then on whenever it constructs it just uses the pointer? Am i missing something here?
tec27
Profile Blog Joined June 2004
United States3702 Posts
November 14 2012 05:47 GMT
#3830
On November 14 2012 13:57 chaokel wrote:
Show nested quote +
On November 14 2012 08:34 Morfildur wrote:
On November 14 2012 08:28 meatpudding wrote:
On November 14 2012 07:52 KaiserJohan wrote:
On November 13 2012 08:37 Nausea wrote:
Okay so I started writing this assetmanager singleton class, with a map storing a string and an image. The problem is that the image is stored as a pointer in the map and adding it to the map is going fine, however when i try to get the function to return the pointer the compiler does not complain but the program shuts down when the pointer is returned as NULL.

Help! :/


NVM I solved it, I tried doing it->second, and instead I now did ImagesList.find(filename)->second

that did the trick. Thank you all for your help


Now I'm mainly speaking from a C++ perspective but:
Drop the singleton design, instead build your system in such a way as to avoid globals as much as absolutely possible. It forces you to think and create healthy software design, because sooner or later the singleton and stuff like it will bite you. Your object should have a clear purpose and their scope and visibility as limited as possible and also avoid coupling between systems.



I would like to ask how you suggest doing this?

Imagine different Entity types need access to the AssetManager. With globals or singleton you can do something like this (Assume myImage is inherit from Entity and myImageResourceName identifies the unique resource)


// For the projectile class
void Projectile::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}

// For the shrubbery class
void Shrubbery::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}



How would you avoid AssetManager being global in this case?


Don't know which language, so pseudocode:

Projectile::constructor(AssetManager am) { this,assetManager = am; }
Projectile::Load() { this,assetManager.GetResource(imageName); }


Is this not almost exactly how a singleton works?

You create an instance of it once, assign the this pointer and from then on whenever it constructs it just uses the pointer? Am i missing something here?

The end result is the same in this case, but the benefit to this approach is that its far more testable. If you need to test the Projectile class you can create whatever sort of AssetManager suits your testcase (a mock, one that loads things from memory instead of disk, etc.). In the actual game, you can utilize a different one. If you use a singleton approach, you've coupled your Projectile class to whatever AssetManager type it creates, and this obviously makes unit testing harder and makes your underlying types harder to switch around down the road. In general you should prefer to pass dependencies in rather than creating them within each dependent class (although this applies to everything, not just singletons).
Can you jam with the console cowboys in cyberspace?
chaokel
Profile Blog Joined October 2010
Australia535 Posts
November 14 2012 06:00 GMT
#3831
Ohhh that makes a lot of sense, thanks!
scudst0rm
Profile Joined May 2010
Canada1149 Posts
November 14 2012 06:36 GMT
#3832
On November 14 2012 13:26 frogmelter wrote:
I was asked this question for an interview and I've been wondering about it for a few weeks.

Rank each device from highest electricity consumption to lowest.

Normal Hard Drive, SSD, USB Flash Drive, RAM

My order of ranking and reasoning:

1) Hard Drive - has to spin at thousands of RPM
2) SSD - Bigger than the other two smaller components of memory [RAM and USB]
3) USB Flash Drive - A usb port can supply up to 5v iirc?
4) Ram - Takes like... 1.5v?

I'm not sure about the last two. Does a USB drive take more electricity or RAM?


voltage isn't a great indicator of power consumption. power = voltage * current, so your only getting half of the equation. Also it really depends whether your talking about average power during normal use or while stressing the device with reads/writes.

The actual numbers are something like:
RAM ~ 10W per stick
HDD ~ 10W
SDD ~ 1W
USB <1W
You're like a one ranger army comin' at me...
nunez
Profile Blog Joined February 2011
Norway4003 Posts
November 14 2012 09:23 GMT
#3833
On November 14 2012 08:28 meatpudding wrote:
Show nested quote +
On November 14 2012 07:52 KaiserJohan wrote:
On November 13 2012 08:37 Nausea wrote:
Okay so I started writing this assetmanager singleton class, with a map storing a string and an image. The problem is that the image is stored as a pointer in the map and adding it to the map is going fine, however when i try to get the function to return the pointer the compiler does not complain but the program shuts down when the pointer is returned as NULL.

Help! :/


NVM I solved it, I tried doing it->second, and instead I now did ImagesList.find(filename)->second

that did the trick. Thank you all for your help


Now I'm mainly speaking from a C++ perspective but:
Drop the singleton design, instead build your system in such a way as to avoid globals as much as absolutely possible. It forces you to think and create healthy software design, because sooner or later the singleton and stuff like it will bite you. Your object should have a clear purpose and their scope and visibility as limited as possible and also avoid coupling between systems.



I would like to ask how you suggest doing this?

Imagine different Entity types need access to the AssetManager. With globals or singleton you can do something like this (Assume myImage is inherit from Entity and myImageResourceName identifies the unique resource)


// For the projectile class
void Projectile::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}

// For the shrubbery class
void Shrubbery::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}



How would you avoid AssetManager being global in this case?


of the top of my mind you could use a template for assetmanager.
conspired against by a confederacy of dunces.
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
November 14 2012 11:52 GMT
#3834
On November 14 2012 13:57 chaokel wrote:
Show nested quote +
On November 14 2012 08:34 Morfildur wrote:
On November 14 2012 08:28 meatpudding wrote:
On November 14 2012 07:52 KaiserJohan wrote:
On November 13 2012 08:37 Nausea wrote:
Okay so I started writing this assetmanager singleton class, with a map storing a string and an image. The problem is that the image is stored as a pointer in the map and adding it to the map is going fine, however when i try to get the function to return the pointer the compiler does not complain but the program shuts down when the pointer is returned as NULL.

Help! :/


NVM I solved it, I tried doing it->second, and instead I now did ImagesList.find(filename)->second

that did the trick. Thank you all for your help


Now I'm mainly speaking from a C++ perspective but:
Drop the singleton design, instead build your system in such a way as to avoid globals as much as absolutely possible. It forces you to think and create healthy software design, because sooner or later the singleton and stuff like it will bite you. Your object should have a clear purpose and their scope and visibility as limited as possible and also avoid coupling between systems.



I would like to ask how you suggest doing this?

Imagine different Entity types need access to the AssetManager. With globals or singleton you can do something like this (Assume myImage is inherit from Entity and myImageResourceName identifies the unique resource)


// For the projectile class
void Projectile::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}

// For the shrubbery class
void Shrubbery::Load()
{
myImage = AssetManager::GetSingleton().GetResource(myImageResourceName);
}



How would you avoid AssetManager being global in this case?


Don't know which language, so pseudocode:

Projectile::constructor(AssetManager am) { this,assetManager = am; }
Projectile::Load() { this,assetManager.GetResource(imageName); }


Is this not almost exactly how a singleton works?

You create an instance of it once, assign the this pointer and from then on whenever it constructs it just uses the pointer? Am i missing something here?


No. It's called dependency injection.
http://en.wikipedia.org/wiki/Dependency_Injection

For example if you want to write a unit test, you can pass a derived class of the AssetManager - e.g. a TestAssetManager - and then your class will use that instead. Your program can also use different asset managers that all inherit from the AssetManager class without your Projectile class having to know about that.
fabiano
Profile Blog Joined August 2009
Brazil4644 Posts
November 14 2012 12:47 GMT
#3835
Interesting discussion, makes one learn something new

Maybe if he wrote something like this:

[image loading]


or does this design implies into some kind of difficulty?
"When the geyser died, a probe came out" - SirJolt
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
November 14 2012 12:55 GMT
#3836
On November 14 2012 21:47 fabiano wrote:
Interesting discussion, makes one learn something new

Maybe if he wrote something like this:

[image loading]


or does this design implies into some kind of difficulty?


It's basically the same, except it uses an explicit interface for the AssetManager. C++ has no notion of Interfaces so it boils down to the same code.
heishe
Profile Blog Joined June 2009
Germany2284 Posts
Last Edited: 2012-11-14 13:01:26
November 14 2012 12:59 GMT
#3837
On November 14 2012 13:09 tec27 wrote:
Show nested quote +
On November 14 2012 09:21 NukeTheBunnys wrote:
I love hearing people blindly saying you should not use globals. Its one of those things that gets taught in schools and blindly accepted. Globals are fine when used correctly, people are taught not to use them because they present some risk to maintainability especially when they are used in the wrong context.

Its not so much maintainability as it is testability where globals cause issues. It is much better for testing to explicitly specify what your class' dependencies are and pass them in, than for a class to assume that a global variable of a specific type is set and initialized properly and utilize that (and in many cases having a global dependency makes it hard/impossible to replace with a stubbed version of the dependency). It also makes your code flow and initialization of objects much more straight-forward and easy to follow. Yes, they're fine when used in the right situations, but there are very few situations where that's the case.


The real problem with globals and singletons (which are used like globals, as opposed to their namesake, which can be handled by factories just as well) is that they solve a problem that shouldn't exist in the first place.

All that globals solve is lazyness (too lazy to pass around one extra parameter in functions that need access to the global), while providing no additional advantages, outside of a few ridiculously limited side cases (e.g. programs where the additional push to the stack in a function call for the extra parameter actually has a measurable effect on performance, which is almost never the case).

On the other hand, they introduce a lot of downsides in the long term. There is not a production code in the world that has been handled by more than one or two people over a timespan of more than a year, where globals or singletons haven't caused some sort of problem (even if it's miniscule) or made some refactoring necessary down the line. They fuck up unit tests, introduce problems with parallelism (especially pure globals), introduce opaque dependencies, etc.

And again, literally all they solve is lazyness. There's nothing that a global or singleton can do, that you can't do by passing stuff around in parameters.

The reason that universities and schools blindly teach you "don't use globals" is because it's true: You shouldn't. If you're lucky, the global/singleton will be equally as good as the solution without. But it's never better, and often times worse. So just don't use them.
If you value your soul, never look into the eye of a horse. Your soul will forever be lost in the void of the horse.
supereddie
Profile Joined March 2011
Netherlands151 Posts
November 14 2012 17:08 GMT
#3838
Instead of Dependency Injection by using constructor injection, you could also use the Service Locator pattern. They kind-of achieve the same thing: decoupling your classes from concrete implementations.

A C# example:

// somewhere during program startup
ServiceLocator.Register<IAssetManager>(new AssetManager());

// Consumer
IAssetManager am = ServiceLocator.Resolve<IAssetManager>();
am.GetResource(myImageResourceName);
"Do not try to make difficult things possible, but make simple things simple." - David Platt on Software Design
white_horse
Profile Joined July 2010
1019 Posts
Last Edited: 2012-11-14 17:43:56
November 14 2012 17:43 GMT
#3839
On November 12 2012 14:24 ninjamyst wrote:
I am currently a Software Architect at a mid-size Healthcare IT firm. Straight out of college, we pay $55-$60k. 2-3 years of experience will get you $75-$85k. 4-6 years of experience, you are looking at $90-$110k. That doesn't include year-end bonus of $5-$20k. This is in a major city, and we primarily use Microsoft technology....so C#, ASP.NET, SQL Server 2008, etc. We don't care if you memorized definitions, and we dont give you stupid brain teasers during our interviews. We hire based on your problem solving skills and your object oriented design experiences. We will ask you to take a simple every day concept and break it down into classes/methods/properties. For example, how would you represent a baseball game in code? We dont hire specifically for front end vs database vs business logic. As part of our small development team, you will do all of those things. You will learn how to create GUI, how to create business objects, how to maintain databases.

For those of you in college now, the best way to impress is to be involved in side projects outside of school. Most schools don't even teach C# or PHP or Ruby; they only teach Java or C++. When we look at college resumes, everyone takes the same classes, do the same senior projects, and etc. We look for people that wrote their own mobile app, engaged in engineering competitions, did side projects for fun, learned a language outside of class, and etc.

Most importantly, we look for people with strong communication skills. Too often, we get people obsessed with technical stuff only, and they lack social skills. In a team environment, you need to be able to express your ideas to your peers. In design sessions, you need to be able to clearly explain your logic and your reasoning. If we can't understand you, we can't hire you even if you can create the fastest algorithm.


How hard is it to learn SQL, PHP, C# after you learn C++? I'm an intermediate c++ programmer. It looks like it would be easier since you know a little bit about programming already.
Translator
Abductedonut
Profile Blog Joined December 2010
United States324 Posts
November 14 2012 22:48 GMT
#3840
On November 15 2012 02:43 white_horse wrote:
Show nested quote +
On November 12 2012 14:24 ninjamyst wrote:
I am currently a Software Architect at a mid-size Healthcare IT firm. Straight out of college, we pay $55-$60k. 2-3 years of experience will get you $75-$85k. 4-6 years of experience, you are looking at $90-$110k. That doesn't include year-end bonus of $5-$20k. This is in a major city, and we primarily use Microsoft technology....so C#, ASP.NET, SQL Server 2008, etc. We don't care if you memorized definitions, and we dont give you stupid brain teasers during our interviews. We hire based on your problem solving skills and your object oriented design experiences. We will ask you to take a simple every day concept and break it down into classes/methods/properties. For example, how would you represent a baseball game in code? We dont hire specifically for front end vs database vs business logic. As part of our small development team, you will do all of those things. You will learn how to create GUI, how to create business objects, how to maintain databases.

For those of you in college now, the best way to impress is to be involved in side projects outside of school. Most schools don't even teach C# or PHP or Ruby; they only teach Java or C++. When we look at college resumes, everyone takes the same classes, do the same senior projects, and etc. We look for people that wrote their own mobile app, engaged in engineering competitions, did side projects for fun, learned a language outside of class, and etc.

Most importantly, we look for people with strong communication skills. Too often, we get people obsessed with technical stuff only, and they lack social skills. In a team environment, you need to be able to express your ideas to your peers. In design sessions, you need to be able to clearly explain your logic and your reasoning. If we can't understand you, we can't hire you even if you can create the fastest algorithm.


How hard is it to learn SQL, PHP, C# after you learn C++? I'm an intermediate c++ programmer. It looks like it would be easier since you know a little bit about programming already.


It's not hard, but every language has small details that don't exist in other languages. For example, PHP has a foreach loop that does not exist in C++ ( it might in the latest version of C++... not sure).

The only languages that are going to be difficult after C++ are:
- Assembly
- C (Because C++ programmers don't know anything about C, but think they do)
- Functional Programming languages like Scheme.
- HDL languages like Verilog and VHDL ( but these can be irrelevant)
Prev 1 190 191 192 193 194 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 19h 1m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Ryung 789
trigger 58
StarCraft: Brood War
Britney 49559
Calm 7451
Horang2 1066
BeSt 825
EffOrt 719
Soma 642
Stork 530
actioN 492
ggaemo 470
Hyuk 456
[ Show more ]
Mini 407
Larva 403
Snow 339
ZerO 287
Rush 232
Soulkey 218
Mind 121
hero 117
Mong 109
Hyun 99
Dewaltoss 74
Pusan 70
Killer 66
sorry 57
Shine 51
Backho 50
sSak 44
Barracks 39
Aegong 39
Bale 29
Sacsri 28
Rock 21
yabsab 19
Terrorterran 17
soO 13
IntoTheRainbow 12
GoRush 10
ajuk12(nOOB) 9
Dota 2
qojqva2650
syndereN447
monkeys_forever286
XcaliburYe65
Counter-Strike
byalli592
Other Games
singsing2368
B2W.Neo1002
hiko784
Lowko373
DeMusliM305
mouzStarbuck257
Liquid`VortiX161
ArmadaUGS142
RotterdaM84
ZerO(Twitch)27
Organizations
StarCraft: Brood War
UltimateBattle 1258
Dota 2
PGL Dota 2 - Main Stream32
StarCraft: Brood War
Kim Chul Min (afreeca) 8
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 17 non-featured ]
StarCraft 2
• StrangeGG 75
• poizon28 25
• iHatsuTV 9
• Migwel
• AfreecaTV YouTube
• sooper7s
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
StarCraft: Brood War
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• lizZardDota244
League of Legends
• Jankos1605
Other Games
• WagamamaTV312
• Shiphtur103
Upcoming Events
GSL
19h 1m
SHIN vs Zoun
ByuN vs herO
OSC
20h 31m
OSC
22h 31m
Replay Cast
1d 9h
Escore
1d 19h
The PondCast
1d 19h
WardiTV Invitational
1d 20h
Zoun vs Ryung
Lambo vs ShoWTimE
OSC
2 days
Replay Cast
2 days
CranKy Ducklings
2 days
[ Show More ]
RSL Revival
2 days
SHIN vs Bunny
ByuN vs Shameless
WardiTV Invitational
2 days
Krystianer vs TriGGeR
Cure vs Rogue
uThermal 2v2 Circuit
3 days
BSL
3 days
Replay Cast
3 days
Sparkling Tuna Cup
3 days
RSL Revival
3 days
Cure vs Zoun
Clem vs Lambo
WardiTV Invitational
3 days
BSL
4 days
GSL
4 days
Afreeca Starleague
4 days
Soma vs Leta
Monday Night Weeklies
5 days
CranKy Ducklings
5 days
Afreeca Starleague
5 days
Light vs Flash
Replay Cast
6 days
Liquipedia Results

Completed

Proleague 2026-05-05
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
YSL S3
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026

Upcoming

Escore Tournament S2: W6
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
Escore Tournament S2: W7
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.