
Ask HN: Yet Another Software Engineer; Help? - mate_
I&#x27;m writing this fully aware that I will not be getting any replies on this, and this like my other failures is going to stay at the bottom. 
I graduated in Computers. In the course study we had C and C++ in the first year, and the Java for the next two years. So I would say in the least I coded in both the languages to certain extent and I liked it. Then after my graduation like all the my friends, I joined a Software Company. The first few months were hectic, I was trained again in Advanced Java and EJB. I thought I would work on Java in my next years, I couldn&#x27;t have been more wrong.<p>If you ever worked for an Asian Multinational company, you really don&#x27;t have a choice midst thousands of other Software Engineers. You are to go and work in the department they ask you to.  We in this group work at various tools like HP Operator Orchestrator, ServiceNow[1], Salesforce etc., meaning pre-packed and developed applications. We customize these Tools or applications as per the needs of the Customers.
I was able to learn the tools easily because an expert in one of the tools, and worked on it for 3 years. In the mean time, I lost all my programming skills. I now don&#x27;t have any programming skills what so ever.I can still write snippets of code, I can visualize and write algorithms in Javascript, but I really don&#x27;t know any language. I tried to learn Python for a bit, and wasn&#x27;t successful, I gave Go a shot and failed again.
I&#x27;m at one stage of my life, where I really don&#x27;t know what to do. I know one thing, I don&#x27;t want to work on these &quot;Tools&quot; for the rest of my life. I want to learn and develop solid applications. 
I know some of you are like me, what did you do (or) what method did you follow to go back to development after a stint of bad years? 
I really don&#x27;t have anybody to guide me. All the seniors I work with have no idea what Go is or what Git is.
Help me please, before I completely give up.<p>Thank you, for reading.<p>[1] http:&#x2F;&#x2F;www.servicenow.com&#x2F;
======
xpto123
You should take a Java certification or something and find a job as a
developer ASAP. There will be employers willing to invest on you during the
relearning curve. If it ever happens again being assigned a non development
position then its better to leave ASAP as opposed to waiting. Try to become a
freelance to gain more control on your assignments, first locally then remote.

------
davelnewton
I'd take a step back and figure out how/why you "weren't successful" learning
Python and "failed" with Go.

Becoming skilled takes deliberate practice. If you're not willing to put in
the effort I wouldn't expect much in the way of positive results.

There has never been a better time to self-educate and participate. Pick a
project, pick an ecosystem, and begin.

------
brudgers
The best way to get better at writing code [or prose] is to read and write
more code [or prose]. Start a project, or two, or three, or twelve and write
some code.

So what if you didn't learn Python and Go in a few hours? Try Lua or Boo or
Rust or Scala or MUMPS or Smalltalk or Erlang next. Load up Node and write
some JavaScript code. Download Eclipse and give Java a whirl.

Find something you like. Then worry about learning it. Because it will take
ten years.

[http://norvig.com/21-days.html](http://norvig.com/21-days.html)

------
century19
You have a couple of options:

1) Find another job.

2) Try to introduce new technology at your workplace. Not a language like C++
but Frameworks that could be more productive for some projects, maybe some
internal tools. E.g. Play Framework for web apps, Spark for data analysis,
Docker for deployments, etc. Find a painful repetitive internal process and
suggest building something to make it less painful.

3) Improve your programming skills outside the office by working on a side
project or attending Meetups.

------
switch33
"I was able to learn the tools easily because an expert in one of the tools,
and worked on it for 3 years. In the mean time, I lost all my programming
skills. I now don't have any programming skills what so ever."

If you are expecting to pick up a new language you cannot expect to code at
the same speed as the programming language you have been working on for quite
a while with. But that is not necessarily a bad thing.

C/C++ have huge changes in the language updates as well so it is not too
suprising if you think you have unlearned some of them. In retrospect maybe
you just learned some of the algorithms rather than just learning the
languages themselves when doing the languages. To re-learn them i'd look at
more used libraries for C++ like libmusl and be aware that real programming is
not all about just algorithms.

Instead of picking a new programming language to learn maybe you should learn
a bit more about the "ecosystems" of languages. While almost all programming
languages are good at almost everything, there are a few special "sweetspots"
of coding in specific languages.

Some example questions you should pay attention to: Why are some programming
languages used more than others for specific situations? What is the
difference between a scripting language and a normal functional programming
language?

Some of those questions have somewhat obvious answers. Many of the languages
now are specialized in a few things. Erlang is great for passing data around.
Rust is good for recoverability with a server. Go is good for concurrency
patterns (but fails on some degree where concurrency patterns are not just
steady/simple). Ocaml is good for security based programming because it is a
static language(one instruction/way of executing for most of the language) it
is also used entirely by at least one company that operates in the space of
trading. Python is good for computing with numbers because it automatically
can handle large numbers and can be easily convereted to C/C++.

I'd suggest learning the ecosystem of what drives what in a specific category.
For instance do you want to get into machine learning? reverse engineering?
devops (automated deployment)? Picking some skillset that is out there already
that is highly valued and then learning about programming languages by viewing
what companies are doing is a good way to learn. You see business decisions
that are made based on programming language, time, money constraints, and it's
not all just about what they just had at the time for the bigger tech
companies because if it sucked they re-coded it.

If you have any specific questions you can ask away below.

------
bluerail
I was exactly in your position (em: Exactly) 6 months before.

Like you, I graduated with Computer technology and was placed in an MNC. Same
like you I worked with "Tools", not software, in my case it is Microsoft
SCCM[1]. I was locked into this job for some financial dependencies and after
some quick 3 years when I look back, I regretted all of my work experience.
Not because it isn't worth, but it isn't what I wanted to be in my life. So, I
decided that whatever I should do, I should, to become a software developer
within 2014 end and I would say I accomplished it since, I am joining as an
RoR developer in a month. (all within 6 months)

Some of the points,

1) I started from the deep basic level ultimately from HTML and CSS stuff. I
didn't think myself as an CS grad, but a self-learning programmer and did
whatever a self-learning programmer will do. I call myself that. For example,
I was asked to prepare myself with JS and Coffeescript in the new job I am
joining, so I started learning JS from yesterday. Even though I have learned
and practiced it 4 months before, I started from the utter basics of it just
to brush up my knowledge on it.[2]

2) You are right, even none of my colleagues are aware of Github, HN, Git or
even Ruby as a programming language. I was one of them one year before. I
didn't know any of the programming stuffs at all. All they / I had known is
Technet, Sourceforge and most of the IT forums. So, don't expect any kind of
assistance from them.

Glad you are from US which is going to help you a lot. Being from India I
struggled a lot even to get answers for some of the tiny doubts. Sometimes, I
had to work through night since in StackOverflow, questions will get answered
much quicker in EST time. 4.30 PM IST to 3.00 AM IST was my regular learning
hours. If I went to any meetups there will be no more than 10 people in it. I
didn't had any mentors, but if you could, get one, it is going to leap you 10
steps each time.

Start from the basics (I mean really basics) and go by the path as any
beginner programmer would do. Don't assume yourself as a programmer yet.
Assume you didn't had any CS degree or whatsoever. Go to Meetups, read Blogs,
If you really want to be a programmer, commit yourself 200% into it.

I am not going to comment on the programming languages, Books to study, or
projects to do. If you really hook into it you ll get to know them naturally.

All the best.

[1] -
[http://en.wikipedia.org/wiki/System_Center_Configuration_Man...](http://en.wikipedia.org/wiki/System_Center_Configuration_Manager)

[2] - [https://github.com/avinoth/LearningRepo-
JS](https://github.com/avinoth/LearningRepo-JS)

------
phektus
"I tried to learn Python for a bit, and wasn't successful"

Kindly define not being successful. If you mean you gave up, then next time
don't. Also, quit your job if you have to.

------
CmonDev
You will not miss to much if you don't know Go.

------
yen223
Where are you?

~~~
mate_
I'm in the US, but I'm an immigrant working here.

