Tag Info

Hot answers tagged

32

Run your tests in a virtual machine with limited memory and only one core. The old machines people still may have now are mostly Pentium 4 era things. That's not that unrealistic - I'm using one myself right now. Single core performance on many current PCs normally isn't that much better, and can be worse. RAM performance is more important than CPU ...


25

Cloud Computing, like most new technologies, was painfully over-hyped by the industry media. As it matures and is adopted -- or not -- as a working strategy, it is finding its valid place in the ecosystem. It is neither a panacea for all infrastructure problems nor a failure.


25

If you love programming, certainly. As in any field, there are better and worse jobs. But once you manage to get experience, and find a good workplace (which is absolutely possible IMHO), you will get to do what you love, and even get paid for it (and quite well, compared to the population average)! I do think this is a priceless combination.


23

Algorithms are a very central part of any kind of computation or computer program. In fact, computer programs are only a bunch of algorithms slapped together with some fancy structured data. That's it. Algorithms + Data Structures = Programs. A computer program consists of logical rules which it follows. Such rules are structured as algorithms. Rules alone ...


22

I'm a first year student in CS and I absolutely love programming. break; If you like what you're doing, keep doing it. If those things bother you, there is enough variety in the types of things you can do after graduating, that you should be able to find a great fit.


18

60hr work weeks, taking work home, being on call 24-hours, etc... all that is not a factor of being a programmer. Thats comes from people unable to say 'no' to an employer. That happens in any industry if an employee lets their boss treat them like a floor mat. The basic question is... do you like programming? Is it in your blood? Then be a programmer. ...


17

I just sent my development manager an email the other day where I timed how long it took me to restart my computer, as well as things like opening Visual Studio, compiling, etc. Then I multiplied this by an estimate of how many times per day I do these things, then by the # of working days per year, then by our number of developers, and then finally by our ...


17

If you are looking for a good, theoretical base of knowledge, check out the MIT Open CourseWare site. The site has a great collection of content, including videos, of computer science / engineering classes. I would start with the great "Structure and Interpretation of Computer Prorgams", and alo check out the "Intro to Algorithms" class. ...


13

imagine you have a drum. If you beat it 10 times a second that would give you the transmission rate. You can hear it from a hundred meters away in about a second (speed of sound) which is the propogation speed. Edit: 10 times a second being 10 bits of information send. You can beat faster, increasing the transmission rate, but you can't increase the speed ...


13

They are not awesome. It's just an ordinary tool we use in development like any other tools. Its sole purpose is to provide an answer to a specific problem, avoiding reinventing the wheel again and again, i.e. wasting your time. Examples: If you need to sort a list, you would use an existent algorithm, instead of wasting your time inventing your own. ...


11

Mate, it has not gone away. It was not over hyped, niether has it failed. I will try to take a moderate approach to answering this. We are still years behind in using the cloud to full potential. It is a paradigm shift not just a technology adoption. Also adopting a new technology takes years to be in practise. The Mainframes never went away ? There are ...


11

The way to spot significant algorithm inefficiency is to profile you code. The way to catch memory overuse is to first understand how much memory your target uses have, and then design accordingly, and regularly test in that environment. If you are writing threaded code, testing on multiple machines with differing CPU speeds will help highlight specific ...


10

As a general rule, the fastest way to speed up development these days is by buying an SSD. But since you already have one, I'd say you ought to upgrade your RAM first, (and make sure you're on a 64-bit OS that can support lots of RAM,) then look at heavier CPUs.


10

Anything that you do to slow down your machine would probably be a hack. Here are a couple of suggestions: Use virtual machines Profile the code on your machine, looking for bottlenecks Use an old machine for "performance testing"


9

Install Virtual PC, create a hardware profile, create a virtual machine and start playing :)


9

What do you mean "not awesome"? How did your first sorting function look like? Did it take N log(N) time to sort the array? Or was it a variation of insertion/selection/bubble sort? Would Internet search engines be possible without algorithms? Would people use Google as often as they do if it took as little as 2 minutes to search through 20 billion of ...


8

Firstly, bit manipulation arises naturally in one small branch of discrete mathematics and algorithms: finite sets. When the size of the set is predefined, presence of an item in a set can be indicated by setting the corresponding bit. So, there is a class of algorithms where the optimal implementation is expressed in terms of bit manipulation. However, ...


7

In order to tell where your bottleneck is, you have to do some investigation as to the nature of your slowdowns. Also know that the #1 cause for slow Java application performance is not giving the JVM enough RAM. So go through the checklist: Am I constantly hitting the garbage collector? This is the first thing to check with Java applications. Since ...


7

It'll be what you make of it. Coming out of college I heard the rumors of 60 hour work weeks etc... I was lucky and my first job was a place that 40 hours was the norm and beyond that we were paid overtime. I took that philosophy with me ever since at every employer I have worked with no repercussions. Managers will try to convince you otherwise, as they say ...


7

As you're asking for books about computer science, I can recommend some books with basic knowledge which is unlikely to get outdated too soon. Algorithms & Data Structures: The Algorithms Design Manual Structure and Interpretation of Computer Programs (as suggested by Daniel Roseman, freely available) Compilers: Compilers Software-Engineering: The ...


7

They are not insightful in new ways about human cognition at all. I’m not sure how you reached this conclusion but it’s completely wrong. The opposite is true: algorithms offer the deepest insight into human cognition ever. This is formalised in the Church–Turing thesis. The conjecture is about the computability of functions but it has a very important ...


6

Distributed resources is what defines a grid. Although good answers thus far I believe most of you have missed some of the big key points. To my knowledge there was a committee which has defined protocols to standardize cloud computing. Google, amazon, microsoft, the big name players have all implemented their own cloud solutions to provide SAAS ...


6

No job is perfect or fun all the time. Yes programming can be frustrating, but believe me being the system admin and getting beeped at 3 am is pretty frustrating too. Being an accountant is frustrating, being an airline pilot is frustrating, being an artist is frustrating. All jobs have their bad points. You have to pick one where the good points outweigh ...


6

www.mp3car.com has a lot of resources and information on installing computers into cars. Of course they are usually using the computers for playing music, but a computer is computer right? It's up to you to choose what software you want to run on it.


6

If you're talking about getting a bachelor's degree starting with no previous college education, almost certainly not. Some institutions award 2-year degrees, and by working your tail off you can very possibly finish a 4-year degree in three years (although I took the necessary courseload in precisely 1 term and found out why not to). Assuming you're ...


6

Well, there are instructions that don't access the data cache, but it's impossible to access the data cache without using an instruction, so by definition the instruction cache is used more often. If you're talking about which one has fewer cache misses, that's going to be highly program specific. A tight loop that accesses a gigabyte of memory will have ...


6

In case of no operating system you have to program the processor directly using a language it understands. This doesn't mean the CPU only, but others as well, like graphics card processors, sound card processors, etc. Each processor has some kind of basic language it can understand called an instruction set. Instruction sets vary between processor models and ...


6

No, TCP will time out and request that a packet be re-sent, but there's no guaranteed transit time. TCP (typically) relies on IP, which can dynamically route packets, so there's no way to estimate how long it will/should take.



Only top voted, non community-wiki answers of a minimum length are eligible