A consultation

abbasi

Posts: 328   +24
Hello,

I’m 30 and have the bachelor degree in computer software engineering field. I said that so that you note that I have an academic degree. But what level of skill the period of getting that degree gave me? Nothing! No skill in fact.

From that 4 years of learning lessons in university I just have been learning theoretical information. No any practical techniques. I even haven’t been taught to install an operating system like Windows! Do you believe?

I graduated. After some time I thought I need to do something. I thought I should ready myself for real world of work. OK but how? While my language is not English (and even is not near of it) and most of the sources are in this language now. And what books, what courses I need take and many many other questions.

I decided to start. One thing that I was interested in was programming. I had pleasure when codes would run statements successfully after my attempts.
So I continued to learning programming (in C++ programming language) by books and at the end I wanted to complete my programming knowledge by reading the book of its creator (this book: http://www.stroustrup.com/programming1.html). I’m reading it still.

Since operating systems were/are so important, in addition to Windows 7, I tried to learn BSD (this book: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/) and Linux.
I’m reading that book about FreeBSD and one about Ubuntu now.

OK, what is the key of proceeding nowadays? Yes, the English language.
I tried very hard, actually hard, for learning it. It was very hard for a graduated student that wouldn’t know much about it to start again and tries to learning it without teacher! But I had to. Now I’m not very good and also not bad in it. I’m reinforcing myself each day and night.

My first primary goal of studying these fields of science was one thing. I wanted to be a hacker! Note please, I said hacker, not cracker. There is an excellent and subtile difference between the two. I think you’d know that.

So one another tool I needed was networking. After much consultations I chose this book (http://wps.pearsoned.com/ecs_kurose_compnetw_6/). I know I should then learn Network+ then go for learning CCNA and working by packet tracer and….

For Windows 7 and general information about computer I decided to read this book (http://www.amazon.com/CompTIA-Training-220-801-220-802-Microsoft/dp/0735662681) which of course I’m reading it now as well.

Now from BSD, C++, Linux, Competia A+, Networking, Windows and English language, I read something about most of them each day. In fact 24/7. And without any teacher and any class, just by reading books, doing all exercises and asking issues in Internet (in forums) when I have problem with them.

For becoming a real computer engineer, now from 0 through 100 I give myself mark 20!

My speed of proceeding is very slow. That’s because my load is very heavy. But it’s needed.

It’s just like this scenario:
Suppose that one person is going to go to the center of a forest. He/she needs some foods, water, first aid box, tent, research tools and many other instruments which make the load to be heavy, but they are all needed. This is my situation. I can’t leave any of those tools out!

OK, what was my purpose of telling these here to you? I think most of you professional guys have passed most of these ways. And have good experience and skills on those areas.
What advice do you have for me? How can I be more successful? Is my chosen way correct at all!?

I’m so sorry for my broken English. And I’m sorry for the time I gave from you.
I appreciate any response of you.

Thanks.
 
My My. Congratulations on your fortitude to succeed. (y)(y)(y)
Desire and effort trump theory every time, so don't become discouraged. Personally, I learn best getting my hands dirty - - ie: given a problem to be solved. 'Computers' is a vague term and to become productive, pick out a specific area and master it.

My career path was the inverse of yours - - all OJT (On the Job Training). I started in hardware, then software support and finally software development. I started WAY back in the late '60s and there was no degree program in computers. {just like I learned vacuum tubes and much later transistors and integrated chips.} I have a ton of books on the shelf where I got to catch-up for the lack of an academic background.

Suggestion: Lookup POSIX. The entire set Linux/Unix variations are based upon it. Even the 'big blue' IBM has the ability to use that architecture via its AIX system. The goal of POSIX was portability - - the ability to write code in one environment and being able to "port" (make it run) in another. Not the same as Java write once run everywhere, but good enough.

(just wait until you see the uproad this statement brings) Windows is not POSIX, not portable, and very Windows specific - - I therefore conclude it is not the platform to begin learning software or Operating Systems. Just yesterday I had to fight with the Internet Explorer implementation of Javascript. Every other browser supports BTOA(), but various incantations of IE do not - - that's non-portability - - hacking a solution when it should not have been necessary. Another little marvel is C# (It was developed by Microsoft within its .NET initiative) - - very MS specific and does not port well to Linux servers. There's ASP webserver support - - only for IIS and getting a website hosting solution for it is non-trivial whereas support for PHP, Perl, MySQL are everywhere.
(I always get a chuckle with discussions of the Microsoft SQL Sever. Big, Bloated, Expensive and again non-portable where MySQL is downloadable, free, and runs even on my little laptop).

In the early days, companies were heavily concerned about venders locking the customer in and they demaned compatibility. IBM had to contend with NCR, Honeywell, and a guy named Amdahl.

I'm on a laptop with Win/7 Pro and use the Cygwin Linux environment to write Linux programs for webservers. Cygwin is POSIX and thus I seldom run into problems moving code to a real Linux server.

Today here are the opportunities in computers:
  • Networking
  • Security (over the network and within the host)
  • DMBS
  • the Cloud (aka Saas or Software As A Service).
A goal for the Cloud is to reduce development costs and time to delivery. It is still in its
infancy and cutting its teeth in areas of Privacy, Security and Backups. Winners look for problems - - they are also the doorways to future success (hint hint).

Very best wishes, Jeff
 
Thank you very much dear Jeff. I wish I could have some friend like you :)

About your career path, you were lucky. I wish always you be lucky.
I try to look up POSIX and get some info about it. I don't think it's far away from my way.
You are right. Portability is very important. I chose C++ after huge searching (months). MySQL is of C++.
All of your suggestions (say, Cloud) are grate for learning. I keep them in mind.

I hope I succeed.
And best days and night for you.
 
Back