IT careers vs Programming/Development careers

<p>Can anyone speak on their experience in IT careers such as database admin., network admin. etc. Can anyone compare these to more "programming/development"-oriented jobs such as software development/web development etc. Which one is more stressful, involves more hours? Which job pays better, has more job stability?</p>

<p>Aside from those, how can one decide which path to choose based on interest? It seems that IT jobs are a little more structured, while development jobs are involve more creativity? Should people who enjoy more structured work pick IT, or am I making dumb assumptions?</p>

<p>IT:loud, technically incompetent people shouting at you every day for their own faults</p>

<p>That’s simple.</p>

<p>Database admin, network admin etc. : You have a framework (e.g. SQL or a network standard or configuration) that you work in. More intensive in the conceptual or design sense (how to configure the network / how is the network configured, how to construct a database given x data or how to get data y when the database is X etc.).</p>

<p>Developer: You may have to develop the framework that you will work in. More intensive in the general programming sense (program structure, algorithms, bugs etc.).</p>

<p>I’ve been doing some reading (mostly online) that jobs like Database Admin and Network admin have to be on call 24/7. Which is pretty rough, but I do think that they do some interesting work, they’re more involved with businesses (at least that the way it seems)</p>

<p>Longtime database architect/developer/administrator here.</p>

<p>Notice those slashes “/”?? That means there are various responsibilities for databases.</p>

<p>1) The database needs to be logically/physically designed based on customer requirements. This is the job of the data architect or data modeler. The data architect/modeler will create the entity-relationship diagram: entities (which become tables), attributes (which become columns), constraints, indexes and all that mess.</p>

<p>2) The database needs to be developed, created and populated. This is the job of the database developer and sometimes the database administrator. Somebody has the job of taking the design produced by the data architect/modeler and actually create the database and the mechanisms to populate it…using the selected vendor database (like Oracle or SQL Server). Database objects called stored procedures may need to be created to capture the business logic of how data is processed. Stored procedures have many of the constructs that languages like Java has: loops, if-then-else, etc.</p>

<p>3) Once the database is up and running, somebody has to maintain it. That is the job of the database administrator (DBA). The DBA makes sure that the database:</p>

<p>a) Up and running
b) Gives the proper access to the right users
c) Has enough storage space
d) Performing at optimum speed
e) Has backup and recovery processes established
f) Etc, etc, etc</p>

<p>Now who and how many people perform those 3 main tasks above depends on the employer/customer. Here are few manpower scenarios:</p>

<ul>
<li>One person is data modeler, one is developer and one does strictly database administration.</li>
<li>One person is data modeler and developer and one does strictly database administration</li>
<li>One person is data modeler only and one is database administrator/developer</li>
<li>One person is data modeler, developer and DBA until production, then one is DBA for production.</li>
<li>One person does everything. This is big in the DoD world and the position is called database engineer.</li>
</ul>

<p>Personal Opinion: What you don’t want (usually) is to be JUST the DBA. That means you are a) maintaining someone’s design and b) someone’s coding/procedures. I don’t know too many DBA’s who don’t want say-so in the design. Design means almost everything is producing a quality database. A poorly-designed database will never perform optimally no matter how much RAM and chip-speed you throw at it.</p>

<p>24/7 Call: That can happen but that is usually given to folks who either a) wants to do DBA only work and/or b) very young DBA’s just starting out. After I got some years under my belt, I did not do 24/7 on-call jobs and declined any job offers that included that.</p>

<p>Oh…and far as pay…</p>

<p>The more you can do, the more you get paid but all 3 are paid well. The database developer probably makes the least of the 3, because many DBA’s can write/code stored procedures and the rest of the logic is in the actual application done by the Java, C++, C#, Python or Ruby developer. Data architects (and modelers) spearhead the whole database effort and were usually former database developers, so the pure DB Developer can be replaced a little easier.</p>

<p>My ideal setup is to be the data architect/developer and have a strictly DBA working with me…as I don’t really care for installing the database software, begging the Linux (or Windows) admin for resources and the sometimes boring redundant DBA-only work.</p>

<p>How is it possible to not be on call 24/7? Is this only possible when there are several DBA? I’m assumng this is impossible if there is only 1 DBA. </p>

<p>Is it correct to assume that those who start out will be on call 24/7, and once you put in a few years and pay your dues, the 24/7 role will be passed on to younger, newer DBA? Is seniority respected like that in DBA? </p>

<p>How does one get into a role as DBA? Most job descriptions have something like “5 years of previous DBA experience”, does a DB developer role lead to DBA? I also noticed that most roles require SQL and Oracle, which aren’t taught in most CS curricula, so what should one do in terms of education if they aspire to be a DBA?</p>

<p>

</p>

<p>Even if there is only DBA, that does not mean that 24/7 call is part of the job. Yes, it is possible that you may be contacted if the database goes down and someone notices it at 3am, but that is rare. First, your backups and any overnight data to be processed is automated by either Oracle/SQL Server scripts or features and/or Linux scripts. As long as there is enough space and the server is up and running, the database will not have many problems. If the server goes down in the middle of the night (causing the database to go down) then that Linux or Windows admin may be called and they will merely start the database up based on HOPEFULLY nice documentation from the DBA.

[/quote]
</p>

<p>

</p>

<p>Well sometimes and company will hire a 2nd-shift DBA, especially if they have multiple database systems that need to run 24/7. That 2nd-shift DBA is purely an admin. They just make sure the database is up and running and the backups executed. They are not going to fix stored procedures and modify table structures. The daytime DBA handles that.</p>

<p>

</p>

<p>Yeah, that was one thing schools did not do as far as database teaching…teach SQL, but it is getting better as some schools are starting to include it. Still, the best training is to get it directly from Oracle (or Microsoft for SQL Server). Having said that, there are quite a few technical books that can get you up to speed on databases. I would STILL take the database and operating systems courses from your CS program. Also, try to learn the design of databases (data modeling). Just being a DBA is OK, being that Data Architect/Developer/DBA really makes you marketable as companies try to get as much as they can without having to hire “a body per responsibility”. Being a developer first helps a lot because database programming is not as intense as Java/C++ coding as there are no constructors and other object-oriented features and the programming is more procedural.</p>