jack_23 Posted January 8, 2015 Posted January 8, 2015 Hi, I am a final year Computer Science student who is just about to finish the first semester of the fourth year. To be honest, I admit that I haven't been a good student during my studies since I wasn't deeply involved with subjects and just did enough to get average grades. However, I have theoretical, some practical knowledge and I am good at Databases. I am aware of all, therefore I would like make a big change and do well this time. Throughout my studies, I have touched various programming languages in which I mostly have a starting level. Now, I have a final year project to complete which is to be an Android project and also second semester subjects will keep me busy enough. When I look at the job descriptions, they mostly require background in different areas which really scares me. In short, I need advice from experienced people/ users here. I feel my background is weak so it needs to be improved. On the other hand, it's a huge area so I am not sure on what to concentrate. Another option is to find a part time job. The thing is I have a couple of months before I graduate and I want to improve myself. I would really appreciate any advice and direction regarding with my situation. I live in Dublin, Ireland. Thanks in advance.
Sensei Posted January 8, 2015 Posted January 8, 2015 Write applications for yourself. Write it every day. One application/game with GUI per day (or week depending on complexity). You will be able to show your stuff in portfolio to employer. Or even sell it through Internet using PayPal, or other service allowing charging Visa/Master cards to clients. For retail clients applications should be in C/C++/.NET Framework. Does some application that you're using right now annoys you? f.e. doesn't have functionality that you would like to have. Write it by yourself. f.e. always annoyed me that built-in Windows calculator doesn't have history of previous calculations for review, or to return to them. Making your own calculator in .NET Framework shouldn't take more than one day of programming. History can be stored in XML, CSV or database. (CSV can be easily imported to OpenOffice SpreadSheet/Excel, nice feature) Calculator for physicists could have buttons with constants f.e. c, Planck, Reduced plank, mass of electron, elementary charge etc. etc. In one version you can encode them as buttons, in more extended make them editable to user.
Strange Posted January 8, 2015 Posted January 8, 2015 Write applications for yourself. Always a good idea. A good way of experimenting with and learning new languages, tools and techniques. I would suggest looking for a job in software testing, initially. I probably learnt more about good and bad development, debugging, and critical thinking during my time as a test and verification engineer than at any other time. You might be able to find contract work with a company that provides software test services.
jack_23 Posted January 8, 2015 Author Posted January 8, 2015 Thank you for your replies. They are very useful.
Sensei Posted January 8, 2015 Posted January 8, 2015 I doubt such company has free access to source codes of application they're testing.. Not to mention they can be million lines of code to analyze.. Often even application developer's in large projects not have full access to entire project (except top level programmers). They see only other people's modules compiled objects/linkable libraries/shared libraries, but no source of them. This way leakage from one person/compromised machine won't end up in lost of entire project. Newbie must see other people source codes to learn from examples.
Strange Posted January 8, 2015 Posted January 8, 2015 I doubt such company has free access to source codes of application they're testing.. Not to mention they can be million lines of code to analyze.. Often even application developer's in large projects not have full access to entire project (except top level programmers). They see only other people's modules compiled objects/linkable libraries/shared libraries, but no source of them. This way leakage from one person/compromised machine won't end up in lost of entire project. Newbie must see other people source codes to learn from examples. That is not always true. Sometimes the test team works along side the developers (ideally, the tests would be written from the specs before the coding starts). But,even without being able to see the source code, it is still one of the best ways to develop critical thinking skills ("how can I demonstrate that this code doesn't work" or "what other tests can I do that might provide more data to the developers") and learn about good and bad practice (company A always has loads of bugs and delays because they don't write specs / company B always includes testing time in the project plans which means they finish ahead of schedule / etc.)
Sensei Posted January 8, 2015 Posted January 8, 2015 (ideally, the tests would be written from the specs before the coding starts). Tests before coding? That's completely different type of tests than we're talking about. I thought that we're talking about finding bugs in ready application. Tests before coding would be about checking new algorithms whether they're faster, better, less memory hungry, whether program has sense writing (especially true for 3rd party plugins, modules and extensions, not once I started coding such module just to find out that what I wanted to do is impossible because there is no functionality in base application or there is error in some function that I needed to use and whole project was screwed up (but doesn't bother me lost day or two to find it out). Couple such projects were stalled for a couple years until original developer added/fixed needed functionality) etc. etc.
Strange Posted January 8, 2015 Posted January 8, 2015 Tests before coding? That's completely different type of tests than we're talking about. No, same thing. By writing the tests first you validate the spec before coding starts (make sure there is a spec in most cases). As coding proceeds, testing can be done incrementally instead of being left to the end. And so on. I doubt any really does it that way but it is a good target to aim for. The better your spec, and the earlier you start planning and doing testing, the less likely you are to have bugs and the sooner you will finish. Couple such projects were stalled for a couple years ... And was there a detailed functional, architectural and implementation spec before the project started? I am guessing not...
Sensei Posted January 8, 2015 Posted January 8, 2015 And was there a detailed functional, architectural and implementation spec before the project started? I am guessing not... Such modules I am writing in 1-7 days. Client is typically not programmer, so specifications are quite rough *) Typically I can tell client in advance whether project is plausible or not. But if function in base application is broken, how can I know in advance prior using it.. ? If these projects would be for months of coding, in large team of programmers somebody would have to check whether all functions in SDK are working fine, to not waste time. *) or even I am doing everything my way, knowing what effect client wants. Because his vision was since beginning impossible (like last December project).
Strange Posted January 8, 2015 Posted January 8, 2015 That's the difference. The projects I have worked on have had teams of 10 or more (nearly 100 in some cases), often spread across multiple countries and with different specialist skills and extend over months or years.
Sensei Posted January 8, 2015 Posted January 8, 2015 That's the difference. The projects I have worked on have had teams of 10 or more (nearly 100 in some cases), often spread across multiple countries and with different specialist skills and extend over months or years. My neighborhood worked for Sabre and told me how he "worked" on large project: he wrote 30 lines of code in C/C++ in 3 months.. The rest of time, 8h per day or so, he spend on meetings asking for permission to make these 30 lines of code. It's not for me. In the same period of time, I wrote alone maybe 60,000-120,000 lines of code in my apps (one module has 5-10k lines, and I was writing one per week or so)..
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now