You are on page 1of 15

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

A software quality factor is a non-functional requirement for a software program which is not called up by the customer's contract, but nevertheless is a desirable requirement which enhances the quality of the software program. Note that none of these factors are binary; that is, they are not "either you have it or you don't" traits. Rather, they are characteristics that one seeks to maximize in one's software to optimize its quality. So rather than asking whether a software product "has" factor x, ask instead the degree to which it does (or does not). Some software quality factors are listed here: Understandability--clarity of purpose. This goes further than just a statement of purpose; all of the

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

design and user documentation must be clearly written so that it is easily understandable. This is obviously subjective in that the user context must be taken into account: for instance, if the software product is to be used by software engineers it is not required to be understandable to the layman. Completeness--presence of all constituent parts, with each part fully developed. This means that if the code calls a subroutine from an external library, the software package must provide reference to that library and all required parameters must be passed. All required input data must also be available. Conciseness--minimization of excessive or redundant information or processing. This is important

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

where memory capacity is limited, and it is generally considered good practice to keep lines of code to a minimum. It can be improved by replacing repeated functionality by one subroutine or function which achieves that functionality. It also applies to documents. Portability--ability to be run well and easily on multiple computer configurations. Portability can mean both between different hardware---such as running on a PC as well as a smartphone---and between different operating systems---such as running on both Mac OS X and GNU/Linux. Consistency--uniformity in notation, symbology, appearance, and terminology within itself. Maintainability--propensity to facilitate updates to satisfy new requirements. Thus the software

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

product that is maintainable should be well-documented, should not be complex, and should have spare capacity for memory, storage and processor utilization and other resources. Testability--disposition to support acceptance criteria and evaluation of performance. Such a characteristic must be built-in during the design phase if the product is to be easily testable; a complex design leads to poor testability. Usability--convenience and practicality of use. This is affected by such things as the human-computer interface. The component of the software that has most impact on this is the user interface (UI), which for best usability is usually graphical (i.e. a GUI).

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

Reliability--ability to be expected to perform its intended functions satisfactorily. This implies a time factor in that a reliable product is expected to perform correctly over a period of time. It also encompasses environmental considerations in that the product is required to perform correctly in whatever conditions it finds itself (sometimes termed robustness). Structuredness--organisation of constituent parts in a definite pattern. A software product written in a block-structured language such as Pascal will satisfy this characteristic. Efficiency--fulfillment of purpose without waste of resources, such as memory, space and processor utilization, network bandwidth, time, etc.

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

Security--ability to protect data against unauthorized access and to withstand malicious or inadvertent interference with its operations. Besides the presence of appropriate security mechanisms such as authentication, access control and encryption, security also implies resilience in the face of malicious, intelligent and adaptive attackers.

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

Read more: http://wiki.answers.com/Q/What_qualities_should_a_good_engineer_have#ixzz1igGBAK7c

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the application of engineering to software because it integrates significant mathematics, computer science and practices whose origins are in engineering.[2] It is also defined as a systematic approach to the analysis, design, assessment,
I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

implementation, test, maintenance and reengineering of software, that is, the application of engineering to software.[3] The term software engineering first appeared in the 1968 NATO Software Engineering Conference, and was meant to provoke thought regarding the perceived "software crisis" at the time.[4][5]

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

Software development, a much used and more generic term, does not necessarily subsume the engineering paradigm. Although it is questionable what impact it has had on actual software development over the last more than 40 years,[6][7] the field's future looks bright according to Money Magazine and Salary.com, which rated "software engineer" as the best job in the United States in 2006.[8]
I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

software engineering was coined some 20+ years ago, [4] a number of definitions for both the practice and the practitioner, a software engineer, have been proposed. The definition from a recent report on undergraduate software engineering curricula [3] states: Software engineering entails the understanding and application of engineering principles, design skills, good management practice, computer science and mathematical formalism. The Software Engineer must be able to estimate the cost and duration of the software development process, and to determine correctness and reliability and express them
I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

with a degree of precision meaningful to other engineers and informed clients. In recent years, several advanced degree programs in software engineering have been instituted in the US and abroad. One example of this can be found at the SEI itself. Two of the goals of the SEI Education Program are to: (1) develop software engineering curriculum modules that identify, organize, and document the body of knowledge that could be taught in software engineering degree programs, and (2) design, develop, support, and maintain model curricula for undergraduate and graduate software engineering
I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

programs. The question remains, however, how much of this can be taught in a classroom setting or even in a design lab, and how much must be learned on the job or via some sort of apprentice program? What does Ada have to do with software engineering ? Can Ada exist without it? Can software engineering be done without Ada? There are those who believe the term software engineering is just plain wrong: [1] I deeply resent the misuse of the word engineering in the compound term software engineering. Such misuse constitutes, in my opinion, a cheap, deceptive attempt to take
I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

advantage of the professional reputation and image developed by real engineers over a century or so it constitutes theft of professional reputation. In 1986, I coordinated a similar panel for the ACM Computer Science Conference (CSC) [2]. The introduction from that session still holds true for this one, and is paraphrased and tuned b

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

Are you Developer?

Great

Software

Sometimes it is hard to tell how good we are at learning and adapting. These are a few indicators that can help you to determine it. You can learn a new technology very fast. You can maintain legacy code. You are good no matter the development process used, waterfall, CMM, XP You can switch between programming languages easily.

I personally think that if you want to make a career out of this, you should consider the option of being formally educated in the related fields. Software design/programming require a lot of effort especially when you're doing it for money. Technology is changing so fast these days that you've got to move with the times. So fundamentals are essential as much as the intellectual satisfaction and enjoyment you derive from your work. You could start by reading online resources about computer hardware, software design, coding principles and eventually move on to the areas specific to your goals and to the language(s) you wish to use for work. If you're a newbie I would suggest you acquaint yourself with C/C++ and computer hardware. A computer science course certainly helps here, but you can probably do without formal education if you read books and experiment a lot. Remember, experimentation and tinkering with stuff you read about is an effective way to learn and hone your skills as you go along. If you want to go into game programming, graphics/multimedia programming is necessary. Use those languages and environments which you feel comfortable with. But I think the first step should be C/C++ (which considering the huge amount of resources available online and offline, shouldn't take you much time).

A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are: 1. 2. 3. 4. 5. 6. 7. Interfaces Conventions and Templates Layering Algorithmic Complexity Hashing Caching Concurrency

You might also like