8 Replies - 852 Views - Last Post: 23 June 2019 - 01:39 PM

#1 WebDev08   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 22-June 19

Career advice

Posted 22 June 2019 - 02:25 PM

Hello everyone, I'm new here and this might as well be my introduction post.
Anyway, I recently (10 months ago) got my first software development job and first job ever. I'm 20. So, I wasn't really sure in which section I could post this, so if this is the wrong section please feel free to move it to the correct one. I'd really like some experienced developer to help me shed a light on my career as a developer in some aspects.

A little backgroud, I've started 'programming' when I was around 14, using Actionscript to create some fun games and got so far as participating a couple of accelerated game dev jams (Ludum Dare compo's). I 'quit' programming also around 18 when college got in the way and only at 19 I really decided that I wanted to persue a career in coding. I always considered myself to be a smart person and actually felt like I had an edge on programming since I had started earlier. Boy, was I wrong. While in college for computer science I decided that I was going to get a job regardless of university, so therefore I took around 2-3 web development bootcamps on Udemy (around 40h each) and it went very smoothly. At the end of it I could safely navigate the web dev world, or so I thought. Two weeks after placing my resume on Linkedin I was employed in a telecommunication company as a Nodejs backend junior developer. They had all these career plans for me, like I'd be a 'full developer' in only 6 months. (That came out as weird to me, even at the time). I realized that everything I thought I knew about programming was not really helping when it came to understand and most of all solve the every day tickets in completely disorganized and very complex code. The code manages events from Asterisk, SIP, sockets and http requests it all must be in perfect synch. It obviously isn't so there are problems all around.

Anyway, in my resume I said that I had previous experience in programming but never gotten a job before, but apparently the company was expecting me to be a lot faster in learning than I actually was. It took me months to be able to navigate through all the folders and files and find myself when a ticket occurred. The actual problem that I'm facing is: The 6 months has passed and I've been promoted to a full developer but there is no way in hell that I really AM one. They recently hired a guy is supposedly in the same position as I am, but has a portfolio of 5 years in the programming field, and he absolutely owns the code. He can quickly understand and solve any kind of problem that is thrown at him. It quickly became very obvious to my superiors that I'm not 'worth' what I'm getting paid because I can't keep up with a real full developer. Most of the time when I'm facing a very complex problem, I have to ask his help. And it happens very often. The most complex part of our app (which is a realtime caller admin) I can't even GRASP the code. I keep reading and re-reading the same parts but I simply can't get to understand what or precisely WHY that is happening in the big picture. Sure, I can understand what the loop is doing after a db query but I can't understand why that is taking place. My coworker seem to understand everything so easily and can quickly build the big picture in his head and plan ahead implementations and fixes. Basically I'm feeling and looking like 10 years old kid pretending to be a coder in comparison to him and we are at the SAME position. And so therefore this has been increasingly affecting my self esteem to the point where I can barely do anything at work. I feel completely unable and even completely stupid to solve any complex tasks. When I'm coding at home everything goes fine and I can even sometimes face the same problem that I was facing at work and find my way around it. But there is no hiding, there are two options:

Either my mind simply cannot grasp programming in its whole and I need a lot more time to learn things than anyone else (I'm saying this because we even have an intern which I'm responsible for, he has around 2 years of web experience and he can solve many problems that I can't for one reason or another) or there's something I'm missing.

Anyway, any ideas on how to proceed would be greatly appreciated. Should I quit this job and look for another one? How can I improve as a programmer? Apart from taking courses because that is ALL I'm doing in my life. Work, programming courses and college.


Sorry for the long post and thank you.

Is This A Good Question/Topic? 0
  • +

Replies To: Career advice

#2 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12657
  • View blog
  • Posts: 45,831
  • Joined: 27-December 08

Re: Career advice

Posted 22 June 2019 - 02:39 PM

Welcome to Dream.in.Code! I will move this to Corner Cubicle. The Computer Science forum is for advanced and theoretical topics in computer science (discrete math, formal languages, logic, algorithms, digital logic, computer architecture, etc.).
Was This Post Helpful? 0
  • +
  • -

#3 jon.kiparsky   User is online

  • Beginner
  • member icon


Reputation: 11689
  • View blog
  • Posts: 19,866
  • Joined: 19-March 11

Re: Career advice

Posted 22 June 2019 - 02:46 PM

First thing: talk to your supervisor. Tell them about your concerns, and have a conversation about your progress, both over the last six months and going forward in the next six and in the next year. You should be looking for some agreement on where you are now, your strengths and weaknesses, and where you'd like to be in six months' time and in a year, and some plan to get there, including what support you need from your team and from the company. If you can't come to something that looks good, you can make a clean exit and save face all around, but it's very likely that you can come to some understanding that gets you through at least the near term and gives you concrete expectations and goals to hit. Goals can be defined in all sorts of ways, but they should be actionable and measurable. So, goals whose achievement is under your control (possibly with inputs from your company or team, but basically down to you) and can be evaluated in some obvious way.

Setting these goals, if done right, can be a very useful exercise, since it gets you into a conversation about what matters to the organization and what you need to improve on, and it removes some of the ambiguity about expectations.

It's not uncommon for a junior developer to need support, and if you have good relationships with the folks you've been working with they will probably go to some effort to help you come up to speed - but they also have product that they need delivered, and your plan should certainly take that into account.
Was This Post Helpful? 0
  • +
  • -

#4 Skydiver   User is offline

  • Code herder
  • member icon

Reputation: 7139
  • View blog
  • Posts: 24,245
  • Joined: 05-May 12

Re: Career advice

Posted 22 June 2019 - 05:44 PM

I think that the bootcamps you were in as well as your previous web development experience gave you the depth of knowledge needed, but not quite breadth. Furthermore more, it is a major mind shift going from Green field web development where you have full control from end-to-end, to a doing maintenance on and existing backend where you were not present during the initial design phases, and design and architecture documents maybe be sparse, much less up to date.

Also, there is a different mindset needed for IT development where customers are internal and have more hooks into enforcing their "demands and expectations", as opposed to public facing product development.

The other dev with previous industry
experience likely has learned how to quickly scan code, glean the general design patterns or standard approaches in use, and therefore could get a better running start. As for your intern, I am guessing that his previous web dev experience experience is more of maintenance/enhancement rather than brand new development.

But that is all in the past. Jon gives great advice about how to deal with the present and a path towards the future.
Was This Post Helpful? 0
  • +
  • -

#5 WebDev08   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 22-June 19

Re: Career advice

Posted 22 June 2019 - 07:52 PM

Good evening guys,

Thank you for the quick and in-depth response. In fact I did talked with my supervisor about it but he did not set any goals or anything of the sort. He just told me to do my work the best I could and not look into the others. Though he is right in a way, he might be letting a loose edge in the departments relationship...what do I know though.
Talking with my supervisor is another huge problem that I face. I thought that work would be a lot more organized and planned than it actually is. It's just a meeting where the leader literally just 'spits' out what he wants done and/or fixed. He is also not really patient when trying to explain HOW he wants it. What I mean is the following: The IT lead is a guy who actually did partake in the initial design and implementation of the whole project 4 years ago. So he actually knows EVERYTHING about the backend flow. He can straight forward tell you what class to look into and sometimes more or less the line of what he wants fixed. So then he tries to explain it how he wants it done but is seldom patient when I don't really understand how 3-way transfer works when looking into call_id's.
But even though he knows the project really well, he also send us some tickets that are really broad, like: "We have have a connectivity issue on the Socket that happens sporadically showing this error and I need it fixed due tomorrow."

Anyway, all these things I'm complaining are probably just 'standard' IT stuff. Honestly, even though the pay is really good, I don't mind leaving this job for one reason or the other, what I really do care is the long term. Today, I fear leaving this job and having a even harder time on another system that maybe I can't understand it and work well.

I'd really like some tips on improving my programming logic, maybe there is something other than sheer practice that can get my gears flowing better? I have tried programming challenges but I realized that the algorithms that I studied to solve them had little to do with actual problem solving. They were more like a 'trick' or secret that you had to figure it out and it really lacks the day-to-day problem solving skills that I need.

I apologize once again for the long post and thanks for being so helpful.
Was This Post Helpful? 0
  • +
  • -

#6 jon.kiparsky   User is online

  • Beginner
  • member icon


Reputation: 11689
  • View blog
  • Posts: 19,866
  • Joined: 19-March 11

Re: Career advice

Posted 22 June 2019 - 08:41 PM

Honestly, if you think the leadership is not going to be able to help you develop into the engineer you want to be, it's probably good to start planning your exit. Time spent not growing is time lost. The question is, where do you want to get to in your next position? After all, it would be silly to just leave and hope that things might work out better next time.

This is where it's useful to have some sort of mentor handy. You'd like to be able to have someone whose judgement you're willing to rely on who is willing to take an hour to get a coffee and talk through your situation with you. This might be hard to find, but if there's someone you know in the industry or a professor who you clicked with, or even the careers office at your university if you're still able to make use of their services.

If you don't have someone like that around, I suggest you add "meet people in the industry" to your list of stuff to do. (ie, get thee to a meetup!)

Quote

I'd really like some tips on improving my programming logic, maybe there is something other than sheer practice that can get my gears flowing better? I have tried programming challenges


I don't know what programming challenges you've tried, but in general I find that writing lots of code is a great way to improve your programming skills, and sites like rosalind.info, projecteuler.net, adventofcode.com, and so forth are great sources of prompts.

Quote

but I realized that the algorithms that I studied to solve them had little to do with actual problem solving. They were more like a 'trick' or secret that you had to figure it out and it really lacks the day-to-day problem solving skills that I need.


That's an odd statement, and maybe reflects a different approach to programming challenges than I'm used to. Can you explain what you mean, maybe with an example problem and how you went about solving it?
Was This Post Helpful? 0
  • +
  • -

#7 Skydiver   User is offline

  • Code herder
  • member icon

Reputation: 7139
  • View blog
  • Posts: 24,245
  • Joined: 05-May 12

Re: Career advice

Posted 22 June 2019 - 10:49 PM

Our OP indicated that he quit CS, but didn't quite mention at what point he did that. If he quit prior to his data structures and algorithms classes, then the "tricks" that he maybe talking about maybe the application of various data structures and algorithms.

On the other hand, even if he did take those classes, but all the challenges he's been exposed to are those from Project Euler, then I tend to agree with the OP regarding "tricks" -- in this case "math tricks" which are only available to those who immerse themselves in math. Yes, a lot of the problems in Project Euler are solvable with brute force programming. But to be able to solve them in either a reasonable amount of time, or in a time that is competitive with the other people doing the challenge, then there is often a shortcut is needed. Often somebody who understands the problem deeply and has enough mathematical experience can use a shortcut or a formula to solve a problem, as opposed to a programmer who just sees a set of steps to be done by the computer until a solution is found.
Was This Post Helpful? 0
  • +
  • -

#8 WebDev08   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 22-June 19

Re: Career advice

Posted 23 June 2019 - 10:02 AM

Hey guys,

Actually I did not quit my CS degree but I did not take all of my DS classes yet. Though I do have knowledge of algorithms and some basic DS appliance. University also can't do much for you if you don't apply it so there are many structures that I forgot because of the lack of use.

When I referred to tricks that's exactly what I mean. If you'd been exposed to these math problems before you could factor your code to be pretty much a simple formula that will work perfectly. I used to play a lot with Code Signal, and there were many problems like: "Return a f(x) that satisfy the according progression". Problems like that, that drifts too much into the math realm and not so much in what I use it on daily basis. For an example of what I use to solve on my day-to-day is something like: "I need a frequency counter for this unsorted array and then map through it to remove any index that posses an object with a duplicate property...". So maybe I'm just using the wrong sort of websites to practice?
Was This Post Helpful? 0
  • +
  • -

#9 jon.kiparsky   User is online

  • Beginner
  • member icon


Reputation: 11689
  • View blog
  • Posts: 19,866
  • Joined: 19-March 11

Re: Career advice

Posted 23 June 2019 - 01:39 PM

Okay, turning a process into a formula is definitely worth being good at, and it's something that I've used a lot in my career, so I wouldn't sneeze at it. For example, matching problems can be turned into matrix multiplications, which are extremely fast - this is the key insight behind one of my recent big wins on the job. But if you don't want to solve mathy problems, then maybe try different problem sets?

adventofcode.com is a bit cheesy with the Christmas theme, but the underlying problems are worth chewing on, and you've got a couple of years' worth of backlog to play with.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1