Tag Info

Hot answers tagged

28

Great Question. It is important to distinguish between 'Development' and 'R&D.' Point 1 R&D = experimenting with ideas/technology that may never actually become a product. Software Development = working on a product/service desired by a real customer. Point 2 R&D is all about developing new solutions for a specific ...


19

There are already a number of measures of code complexity: Cyclomatic complexity Class length Method length Number of fields Number of method parameters N-path complexity Fan-in and fan-out Data flow analysis (DU/DD chains) Work has been done to correlate these to defect density, effort to maintain, and ease of understanding. Some are more meaningful ...


15

I don't claim to be an expert on the subject of hype cycles, but I'll offer a few observations: The hype cycle seems to be more a product of expectations and media coverage than a characteristic of technology itself. My dictionary says that hype is "extravagant or intensive publicity or promotion." It defines publicity as "the notice or attention given to ...


14

I work at R&D. For one thing, most of it is about the "D" part, that is, building things. You can't escape it. The primary goal of any commercial R&D department is to develop things that work (and that can be sold to customers in order to pay your salary). As Edison put it: 1 % inspiration and 99 % perspiration. Then there's of course the rare "R" ...


14

No. For a very simple reason: you can't test it. Let's say you can evaluate productivity, and give a number (by the way, how do you do it?). Now how do you create a situation where a developer will be in the exact same circumstances, remotely in a part of the test, on-site in another part? Even if you succeed in doing such a test, what it will show? How ...


13

I think this is looking at it slightly myopically. What is integral to effective and efficient software development (and almost every other profession) is research. Google just happens to be the current tool of choice for getting access to information we now most commonly use for this research. Best practices for reseaching include: Verify by finding ...


13

You can use Wikipedia's data dumps. The XML data dump for English Wikipedia that includes current revisions only is about 31 GB, so I'd say it would be a good start for your research. The data dump is pretty big, so you should consider extracting the texts from XML with a SAX parser. WikiXMLJ is a handy Java API tuned for Wikipedia. And then, of course, ...


12

Coding is Simple Coding is the easiest part of the entire job description. Planning, research, learning on the fly, these are the hard things. Because they are harder the inherently take more time. I have never found myself at a lack of speed in laying down code. Only then my planning or research is done poorly do I find myself backtracking because it's ...


12

I think you're trying to draw a parallel between thermodynamic entropy and "complexity." The thing is, entropy is a measure of disorder not complexity. I don't believe that the two are equivalent and interchangeable. The closest analog to thermodynamic entropy is Shannon entropy which measures the amount of disorder in a random variable. This notion is ...


11

You gotta break it down. Think about the different elements that make up what you want to do. Try to think about them in a general rather than specific sense. Think about what might overlap something that you've done before. e.g., in the case of your YouTube Downloader idea: Download videos from YouTube More general view: download files linked to from a ...


11

There are Many Visual Programming languages. But ultimately they all convert to text. Programming is not a linear task, how would you edit a Gesture? You could use Speech to Text to code by voice, but again, it's converted to text. I forgot about Gmail Motion , not really programming but related.


11

This isn't an exact match for what you were requesting, but I think it gets pretty close to the root of your question. This site's page on Loops discusses a number of looping patterns. counting filtered-count accumulate filtered-accumulate search extreme extreme-index filter map shuffle merge fossilized missed-condition They ...


10

Citeseer, Google Scholar, etc. Finding related research is a huge part of grad school. A program to help you organize references. All the related work and papers you've read/cited. I used a spreadsheet and the Mac-based Papers. When it comes time to write chapter 2 of your thesis ("Related Work"), the work you did five years ago will be fuzzy; writing it ...


10

I would say most people working in the software industry don't have enough time on their hands to write academic papers - it's quite time consuming and of doubtful value - most papers are pretty poor things, often stating the blindingly obvious. If you want to get your name in front of people like Google, then contributing high-quality answers to a site like ...


9

Let's get a few things straight. First there is no protection of your company's assets against software patents to be had in any country which permits them. Specifically, forming an LLC will only protect your personal assets (your house, your car etc) from being used to satisfy a lawsuit brought against you by anyone who sues you; it will NOT protect ...


9

Download a copy of SQLite and start going through the code. That should give you a very decent grounding in the fundamental concepts of DBMS design. The SQLite author has extensive notes on his website about how SQLite was designed, and the database engine is small enough that you should be able to wrap your mind around it. http://www.sqlite.org/ ...


9

What type of jobs or industry can allow someone with only a bachelors degree to do virtually unhindered creative research and development? This is subjective, so I'm mainly looking for opinions and RL accounts. This kind of job doesn't exist, unless you own your on company. The only way to get into anything near this kind of work is with a PhD ...


8

Prototype, Prototype, Prototype!! If your team is not familiar with a particular framework then prototype something in it to evaluate where the pain points are. Matt Raible (Java Web framework comparator guy) suggests working with a framework for one week if possible. Prototyping includes investigating the community support behind a framework and other ...


8

You want a public-private key infrastructure From your question you seem to be looking at a public-private key infrastructure (PKI). The ID your client sends is their public key and is totally free to view by anyone. Your servers encrypt the data using a combination of your private key and their public key. This encrypted payload is then sent back to the ...


8

My computer science professors at Boise State University believe I should write a paper and take my idea as far as I can. Copy the question you have written on this site into an email to the professors that advised you to write a paper on your idea. They will have input far more applicable and much more reliable than anything you'll get here. Anyone ...


8

The difference is in the expectations. When I've been working in R&D, I was primarily expected to provide research results. When I've been working in development, I was primarily expected to provide working software. These are not totally separated, and there can be quite substantial gray areas in between. In development, it sometimes happened that I ...


7

No, industrial programming experience will not (directly) help you get into a top 20 school. I say not directly because there are many other factors that are more important: Your academic record -- I don't know how to "translate" your GPA score onto the 4.0 scale used in the States (typically, the Graduate School will translate/scale transcripts before it ...


7

If it's just you, I wouldn't worry about infringing software patents. Seriously. Companies do not enforce software patents unless they think they can extort a license fee out of you, intimidate you into discontinuing the "infringed use", or remove you from the marketplace as a competitor. In all these cases, you must be large enough for the company to ...


7

Depends on what part of the development cycle I am in. Initially in a project when little code has been laid out I would say 75/25 split between research and coding. Perhaps even 80/20 during this initial time. As the project gets more developed it sways more and more with time and eventually becomes the opposite during end of the development cycle. ...


7

The assembler is usually used when you need some heavy optimization. Take for example here, where the guy optimized the processing 6 times. However take a note that modern compilers are very good in optimization, and unless you really knows what you are doing, you will not beat the compiler.


7

Likely Suspects Most likely, the things you want to pay attention to are: your caching tier, your database tier, your general architecture's design (if it's not designed to scale, it just won't). Further Reading Words of caution about the resources below: Some are generic resources, others are specific to one stack or language but still provide ...


7

Caveats: I am neither a lawyer nor a freelancer, so take this as simply my personal opinion rather than the voice of experience. In general, this sounds like a really good deal to me. However, there's some things you're going to want to make sure are explicit in the contract: Are you responsible for on-going maintenance and improvements? If so, will ...


6

I went back to obtain a PhD after years of working in industry and based on that, it would have helped up front for me to familiarize myself with the following things: LaTex, for your eventual thesis but also for the papers you'll probably need to publish. Luckily, there is a StackExchange site for Tex. The conferences and journals in your field. It helps ...


6

I've been in that position a few times, and with experience, you cannot count on the PhD student to deliver research that's relevant, and you certainly can't rely on it happening on a timescale that's useful. PhD students are specifically allowed to go where their research interests take them, and it can be ultra-difficult to be downstream when suddenly they ...


6

Well, there's popularity stats here and especially here - with deltas but I don't know of anything measuring who's moving to what. It would be interesting to plot but I'm not sure if it would be an easy thing to capture.



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