The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.

Over my head at work....

DisrupterDisrupter Registered User regular
edited February 2010 in Help / Advice Forum
Hey everyone. This is my first time posting on the h/a forum on the h side of things.

Long version here:
Basically, I am a computer programmer with a bachelor of computer science. I graduated in 06, worked geeksquad for a bit, then spent a year as a web developer for a small company.

Even at this company I constantly felt a bit over my head, though I excelled and the owners loved me. I eventually found another job as an internal systems developer for a regional company.

Ive been here about 2 months now. Ive had an internal project that went sort of ok, I felt in over my head at times, but managed to get my way through the more complicated parts. Now I am on another, much larger project.

The issue Im having is two fold:

1) When I accomplish stuff, I am always very very concerned that perhaps I did not code it the best way I can. That I sort of maybe took easy routes and hacked together stuff to get things working right. I do not remotely TRY to take short cuts or hack stuff, but I just always am nervous I did things "wrong." Im very fearful that in a live user enviroment, things will slow down, or break...I try to QA as much as I can, but somethings might fall through the cracks.

but more importantly then that...

2) A lot of the stuff im doing is integrating older systems into a new php based intranet portal. basically redesigning older systems in mysql/php. But this requires me to work with systems I am not remotely familiar with, some of which are pretty unsupported. Right now we have a filepro database i need to find a way to synch with mysql...and I am pretty sure this may be impossible, and if it isnt, I certainly dont know how.

To top it off, I have no control over the server. So if I need a module installed, or PHP reconfigured, I have to ask someone to do it. But I am not very experienced with it. So, I am not even sure if what Im asking sounds retarded or makes sense. If I had access to a development server to play around with, I could learn a lot more about managing a linux, apache server...

It even turns out that one of the modules I NEED, the guy in charge of the linux box wont install because he would have to recompile the PHP installation to do so. So...im sort of out of luck there...

Short version, I constantly feel like im in over my head at my new job. (an internal php/mysql systems developer for a regional company) Im always dabbling in systems and technology I am not familiar with, nor claimed to be when hired. This makes me feel uneasy and unsure of how I am performing as an employee. Its a relatively small department so other then my boss theres only like 2 other people, none of which have more experience in my particular field. So...what can I do to gain enough knowledge to feel comfortable at my position?

Is this feeling relatively normal for my industry? I mean, you can only learn so much at school...technology always evolves so maybe its natural to feel like you dont necissarily have all the answers yet...

616610-1.png
Disrupter on

Posts

  • ThanatosThanatos Registered User regular
    edited February 2010
    Have you tried asking for a development server?

    Thanatos on
  • DisrupterDisrupter Registered User regular
    edited February 2010
    See, the thing is, I was under the impression the server im working on IS a development server. But for some reason they have live applications running on it.

    I did ask for my own linux box to have access to, but I was subtley rejected without actually being rejected. My boss just said "work on the redhat box for now"

    So...I suppose I could ask again.

    Disrupter on
    616610-1.png
  • GanluanGanluan Registered User regular
    edited February 2010
    Honestly I felt that way when I started my first development job out of college. I believe that people learn the most when that feeling is present (to an extent), so as long as you feel like your skills are growing it's nothing to be worried about.

    What's unfortunate is you don't have anyone who can do code reviews. I do them all the time for the developers on my team and it helps keep my skills sharp as well. I can understand your need to write "good code", but without someone else to review it for you there's really no way to know for sure other than trusting yourself.

    On a side note, they are setting themselves up for disaster if they don't have a separate box for developers to work with.

    Ganluan on
  • CelestialBadgerCelestialBadger Registered User regular
    edited February 2010
    You need to be more assertive about the server you need to do your job.

    Don't worry about feeling like you didn't code it right - everyone gets that I think. As long as it works and you are always trying to improve, you'll be fine.

    CelestialBadger on
  • SipexSipex Registered User regular
    edited February 2010
    I work in IT too, things get complicated sometimes but take solace in knowing that, as a new hire, they won't expect you to know everything, what you should be able to do is figure it out. It sounds like you can do this so that's not a problem.

    I'm surprised you don't have a senior developer to audit your work and tell you where you could improve though.

    Sipex on
  • PirateJonPirateJon Registered User regular
    edited February 2010
    the server im working on IS a development server. But for some reason they have live applications running on it.
    back up everything twice to different locations. You'll thank me later.
    Is this feeling relatively normal for my industry?

    God yes.

    PirateJon on
    all perfectionists are mediocre in their own eyes
  • HeartlashHeartlash Registered User regular
    edited February 2010
    You need to be more assertive about the server you need to do your job.

    Don't worry about feeling like you didn't code it right - everyone gets that I think. As long as it works and you are always trying to improve, you'll be fine.

    This. Particularly in a field that is so conducive to rapid change.

    Heartlash on
    My indie mobile gaming studio: Elder Aeons
    Our first game is now available for free on Google Play: Frontier: Isle of the Seven Gods
  • GanluanGanluan Registered User regular
    edited February 2010
    One other suggestion for reviewing your own code: I do all my development in .NET, and Microsoft has an established set of "Best Practices" that developers are supposed to follow. I assume there's something similar for PHP or anything else you're working with.

    Ganluan on
  • bowenbowen Sup? Registered User regular
    edited February 2010
    Welcome to IT. This will always be the case, and it's one of the best things, in my opinion, about the industry as a whole. Learning new things is great, and feeling unsure of yourself or the technology, while unsettling, helps build your knowledge and make you better at what you do.

    Don't fret too much about not doing it right. The best you can do is follow project guidelines and test. Other than that it's damage control if something goes catastrophic.

    As for your filemaker database, (I assume that's what it is) there are a few tools out there to convert it to more popular relational databases.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • McVikingMcViking Registered User regular
    edited February 2010
    FWIW, at my second job out of college, I also jumped in way over my head. I spent my first eight months there coming in every day expecting to be fired. It's now twelve years later, and I answer directly to the vice president.

    So yeah, it's normal for the software industry. Most of us like it that way. If I spent every day being asked to do something that I already knew how to do, I would probably get bored and quit in short order.

    McViking on
  • a5ehrena5ehren AtlantaRegistered User regular
    edited February 2010
    You're going to feel like this starting out. I've been at my job for 9 months now, and once a week I run into something I know nothing about that - just plow through it and keep working, and you'll be ok.

    a5ehren on
  • Jimmy KingJimmy King Registered User regular
    edited February 2010
    Man, I've worked my way up to Director of IT for a small international corporation and I still feel that way at times. Honestly, it's a good thing. If you're 100% comfortable and confident, then you're probably not doing anything new and so not learning and expanding your skills or you're a cocky developer who is probably fucking stuff up left and right. Since you're careful about what you're doing and worried about doing a good job, you probably are. That's not to say it's not without mistakes or couldn't have been done better, but you're clearly doing a good enough job to stay employed and are doing your best to keep doing better.

    Here are a few things you can do, though. These are all things that I do.
    1) Grab VMWare and set up virtual machines to match whatever environment you are developing in or are about to do something you're not comfortable with in and try it there first.
    2) If you're willing to spend a little money and the VMWare route isn't cutting it, you can get dedicated servers that you have full control over for $60-$100/month depending on your exact needs. Mine is at sagonet.com.
    3) Do projects on your own that go beyond what you are doing at work - more complex apps, new languages, etc.
    4) Pay attention to what other developers are talking about. If you hear other developers frequently talking about something you don't understand or even know what it is, start reading up on it. As a fully self taught developer with no formal education, I do this all the time to try to learn the things I missed out on by not having a degree.

    As to the live stuff on a dev machine? It sucks, but it happens. I've got the same situation where I work with some apps that are not mission critical. It has definitely caused problems a few times. Make it known that it's not the best idea and that you'd really like to change it and why you'd like to do so. After that, do what you can and hope for the best.

    Jimmy King on
  • DeebaserDeebaser on my way to work in a suit and a tie Ahhhh...come on fucking guyRegistered User regular
    edited February 2010
    In my experience every dev in the history of forever either thinks he is massively over qualified or a giant fraud that doesn't know what the fuck he's doing (And they're going to find out!!!).

    It's normal dude.

    Deebaser on
  • Ashaman42Ashaman42 Registered User regular
    edited February 2010
    Could you not at least set up a development server at home, be it on a spare pc (if you have one) or on a virtual machine?

    At least that way you could try some things out yourself to gain some knowledge.

    Ashaman42 on
  • DisrupterDisrupter Registered User regular
    edited February 2010
    Thanks for the reassurance that just feeling like im in over my head is not an automatic inditement that I am so...

    As for a development server at home. Yeah I can do that. The problem is, we have a pretty complex (at least compared to what I know) thing going here. Our entire network is ran on an active directory system, so all windows users and stuff are stored on that.

    (that was actually my first big 'what the heck do i do here?' situation...I had to find a way to get php applications to be based on windows credentials in the active directory database...i pulled it off though!)

    Beyond that, our old systems are all apparently built on an archeic database called filepro.

    Unfortunately, this is not, file maker pro...

    https://www.fptech.com/

    http://en.wikipedia.org/wiki/FilePro

    I cant really find too much support on it since like...04, and even that is just random filepro devs looking for work or something. Its daunting to say the least.

    Point is, i can definately try to set up my own linux system. We use redhat here, but is there a lot of diffeences between them? Thats one area I feel completely ignorant on, managing a linux-apache server. I want to learn badly, but Im not even sure where to start.

    I feel like I should learn on my own a bit before assertively asking for my own development server to manage here in the office. Since, id rather know what Im talking about a bit when I have that conversation.

    As for not having a senior programmer, the problem is we are not a development company. We sell carpet. We just have a 5-6 man IT team with 3 developers making and managing internal systems. We are a pretty tech driven company given what we do, so thats really nice. The issue is I was hired to be "the php guy" so really theres nobody here who is above me in that regard.

    I guess, when I get home tonight I will begin trying to convert my old PC into a development server to mess around with. Gotta learn some how.

    Disrupter on
    616610-1.png
  • Jimmy KingJimmy King Registered User regular
    edited February 2010
    I would get the version of CentOS that most closely matches whichever version of Red Hat you guys are running. CentOS is just Red Hat with some of the non-free stuff removed and you can use it for free. I'll be surprised if you come across any noticeable differences.

    Jimmy King on
  • SenorFantasticoSenorFantastico Registered User new member
    edited February 2010
    For what it's worth, anyone who is an honestly-to-god competent, experienced, software engineer isn't going to choose to work on internal business tools in the environment you've described. So don't be worried about not having a comprehensive body of knowledge right now - you already have the general background to develop that and, if you enjoy this racket, will outgrow your role in a hurry.

    The rewards are buckets of money, autonomy or a leadership role - you could write your own ticket. This is a merit-based game and I love it. The risks are crippling an organization, souring your reputation in your local hiring pool and even potential lawsuits. But I do love the colour Green!

    You've already identified your next action - implement a development environment, post haste. Use an old workstation - anything. If you're experimenting, you have to be able to do it without fear.

    My advice is to read, read, read on your time and quickly build a cursory level of knowledge. Know what your options are (be it frameworks, IDEs, design patterns & practices) - try to develop breadth of knowledge right away. Let the problems you solve on the job, and your own interests dictate your depth of knowledge.

    Do not be afraid to (tactfully) push back at times to your manager. They hired you because they lack what you have. It's much, much worse to remain silent and let them build a house of cards on your watch than to have a few heated debates.

    Number #1 thing to do, even if you disregard everything else in my post - DOCUMENT WHAT YOU DO. I'm not talking about massive paper trails for every change or release, either. I'm talking about being able to answer the question "What did you do today?" with quantitative information. This is how you earn, this is how you make business cases for additional resources, this is how you recall all of those gnarly things you solved at this job when you're interviewing for your next gig.

    SenorFantastico on
  • kevbotkevbot Registered User regular
    edited February 2010
    I realize that it won't be much help, but the fact that you feel the way you do puts you head and shoulders above most other programmers. The sad fact is that a very large number of programmers don't care about development environments, learning new things, doing things the "Right Way" or, least of all, asking other people for help. The best way to learn is by asking questions; my favorite developers where I work are the ones who come up and ask my advice on how to set up some system to have the least impact on our servers, or ask for help with optimizing or profiling some code, or just for an explanation of how a webserver works. Don't worry if you don't know it all; chances are there's someone at your company who's itching to tell you what they know. That you're willing to ask and have the drive to get better is the most important skill you have.

    Also, what you've pulled off so far is pretty impressive. I've seen a lot less complex work get tossed out as "impossible" by people who've been in the business for a good long time, only because they didn't have your will to give it an honest try.

    I felt terribly overwhelmed for a very long time at my job; I went in thinking I knew what I was doing, only to be schooled pretty hard by someone who's been in the business for a lot longer and knows all the tricks. I was willing to learn, always worried about whether what I was doing was "the right way" to do it, and willing to change my mind. Now, three years on, I occasionally get to show off a trick or two of my own. Just keep on trying new things and building up your skills and range of experience.

    //My vote for setting up your own dev environment, if possible. Virtual PC is free, if all else fails. And your Linux dude shouldn't need to recompile all of PHP to install a module unless he did something really, really weird with the initial build.

    kevbot on
    Your music is bad, and you should feel bad!
  • JeffHJeffH Registered User regular
    edited February 2010
    Just more backup, coming from a software developer for 4+ years now out of college, it's a completely normal feeling.

    JeffH on
  • MichaelLCMichaelLC In what furnace was thy brain? ChicagoRegistered User regular
    edited February 2010
    My advice is to read, read, read on your time and quickly build a cursory level of knowledge. Know what your options are (be it frameworks, IDEs, design patterns & practices) - try to develop breadth of knowledge right away.

    If the company won't get you a server, see if they'll spring for some reference books.

    Also - backups!

    MichaelLC on
  • DisrupterDisrupter Registered User regular
    edited February 2010
    I cant stress enough how helpful everyone has been in just getting my confidence back.

    Now to tackle the current issue.

    I am trying to install a virtual server of centos to see if I can get the php extension I need installed. So far its going ok, we will see how that turns out.

    However, with regards to the extension itself. I dont know much about the differences between linux builds. But the extension seems to be built for mandrake. Does this mean it would not work on centos? Or are most linux builds similar enough where the php extensions for them would be pretty cross platform?

    Disrupter on
    616610-1.png
  • Jimmy KingJimmy King Registered User regular
    edited February 2010
    I would first check yum to see if they have the extension in there. My experience with RH based stuff is that using yum whenever possible to get stuff from the official repository is the way to go.

    If they don't have it in yum, is the extension available via pear? Pear is the official php repository, much like cpan is for Perl.

    Jimmy King on
  • DisrupterDisrupter Registered User regular
    edited February 2010
    Its a pretty rare extension, ive had trouble finding it. it used to be in pecl, but got removed. I searched pear and couldnt find it either. Perhaps theres a reason its not widely used...

    How would I check yum to see if its there?

    Disrupter on
    616610-1.png
  • bowenbowen Sup? Registered User regular
    edited February 2010
    What's the extension?

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • DisrupterDisrupter Registered User regular
    edited February 2010
    http://pecl.php.net/package/filepro

    This is the pecl reference to the extension. I have found some RPMs for it too but I dont know which build would be used.

    In a slightly more immediate concern, when trying to install centos, vmware is asking me to format the drive, it is specifiying a 20 Gig drive that I believe VMware has set up for me: VMware, VMware Virtual S

    Im pretty confident that if I click ok, it will simply format this virtual 20gb partition, however, notices like that always scare me, and the last thing I want to do is format my hard drive. Am I ok to allow this format to occur?

    Disrupter on
    616610-1.png
  • Death Cab For AlbieDeath Cab For Albie Registered User regular
    edited February 2010
    Deebaser wrote: »
    In my experience every dev in the history of forever either thinks he is massively over qualified or a giant fraud that doesn't know what the fuck he's doing (And they're going to find out!!!).

    It's normal dude.

    This is the most accurate thing i've ever read on the internet.

    OP: As others have said, what you're feeling is totally normal.

    Death Cab For Albie on
    ...we made it cool to wear medallions and say hotep...
  • TejsTejs Registered User regular
    edited February 2010
    Deebaser wrote: »
    In my experience every dev in the history of forever either thinks he is massively over qualified or a giant fraud that doesn't know what the fuck he's doing (And they're going to find out!!!).

    It's normal dude.

    This is the most accurate thing i've ever read on the internet.

    OP: As others have said, what you're feeling is totally normal.

    The only difference between these states is that the second person understands how much he doesn't know about programming.

    For example, did you know that .NET doesn't have a built in class capable of doing SFTP? When work asks you to do something that uses SFTP, you run into brick walls fairly quickly until you figure things out, and that's the difficulty with programming in general =D

    Tejs on
  • KrathoonKrathoon Registered User regular
    edited February 2010
    Deebaser wrote: »
    In my experience every dev in the history of forever either thinks he is massively over qualified or a giant fraud that doesn't know what the fuck he's doing (And they're going to find out!!!).

    It's normal dude.

    This is the most accurate thing i've ever read on the internet.

    OP: As others have said, what you're feeling is totally normal.

    As a software engineer myself, I agree. There is no way to be 100% prepared. Use the job as an indicator of what you need to learn.

    Krathoon on
  • DisrupterDisrupter Registered User regular
    edited February 2010
    So, its been a few days. Ive spent the last couple work days messing around with Linux trying to get a much better grasp on that. Ive set up vmware and created a little centos server. I also made a mandriva server.

    I managed to get the filepro php extension working in mandriva and tested it on a backup of our filepro system. I was able to successfully pull the filepro data into PHP (which means I can dump it into mysql with some parsing)

    The trick now is getting this to work on rehat.

    I contacted the person who last managed the extension and asked if they knew of a redhat distribution for it. They then pointed me towards the source.

    it consists of a .c, .h and bunch of other files...

    http://svn.php.net/viewvc/pecl/filepro/trunk/

    I am pretty sure I need to figure out how to turn this into a .so file, compiling on my centos server so it can work. But i have no idea how to do that. Does anyone have any experience with any of this? Or should I find a more specific medium to ask for assistance on this one?

    Disrupter on
    616610-1.png
  • kevbotkevbot Registered User regular
    edited February 2010
    How to build the extension will depend on how you installed PHP (yum vs. from source; I assume yum). If you PM me I can help walk you through it. I built the filepro extension on my server without problems, though I have no idea if it actually works, as I have no filepro dbs.

    kevbot on
    Your music is bad, and you should feel bad!
Sign In or Register to comment.