Well, I always liked programming, but I've never been committed or tied to any real project. I learned some autoit, some c#, some html and css. Now I've been hired as apprentice as programmer by an IT firm and I find hard times to understand the whole thing.
EXAMPLE: I'll highlight in bold every technology or object I needed to link togheter or Had to/Hadn't to get togheter
But the most frustrating thing is that I don't know enough. Every technology has tons of other ways to interface with others and to be configured and they expect me to know it. For example last week they expected me to know how to use C# to make a Http webrequest to consume a wsdl webservice with soap to get in response a long XML string which contained some orders made by another firm. Then I had to parse that string in DataTables and Datasets using LINQ because it's faster and "easier" (NO) than XmlReaders with Xpath. After that I had to make Stored Procedures in T-SQL to elaborate those orders and avoid duplicates after loading them into the database with various SqlCommand, SqlConnection, DataAdapters, Connection strings and so on.
And every time it's something like this. For doing something you have to know how to use multiple technologies and become crazy because they have to set up 1000 settings or you'll get some weird Exception (Encoding, Comparing settings, blah blah blah).
It seems too wide and too big for me. I don't know If I can do it. Until today, by documenting myself I managed to do the job in some way or with the help of workmates (and I'm thankful to them for teaching me). But there is just too much to know. A project can become big in a few minutes.
In 1 month and half I had to mix what I already knew and get documented about:
-Hardware specifics -Hardware settings -Hardware pieces of all kinds -All kind of sql weird behaviours, best pratices,strange settings -C# weird casting rules -C# thousands of objects you must use to accomplish even the simplest task -html -Weird and less used languages like Zebra language or Arduino (which is C-like) -Old and new technologies, like serial ports, MAC/linux systems (always been on windows), iOS 7 -A good way to interface different technologies (see the examle I made before, If it was for me, I would have done in a whole different way...)
and the list could keep going for a long time, because I had to learn just too much. It's right for a programmer to have to know all of this? I think it's just too much for me or I'm just too stupid for it... I'm thinking to get another job, this is becoming too much of a stress and it seems to me that I'll never get "the whole design of the thing", meaning a clear idea of what I'm using or doing.
What do you think? Have you felt the same way? Should I keep going? I feel sorry and ashamed I had to rely many times on my workmates or to have to google for everything...