Jump to content

What experience made you a better programmer?

I'm a young programmer, i like doing it, studying it and making a living out of it and everything, but i often wonder what i could do to get better at it. I'm at a point now where i quit university and resigned from my job, so while it's good that i have the possibility to make big choices relaitively easily (in the sense that i'm not locked into anything), it's also true that i don't know what the next move will be.

 

While i try to figure things out i would like to hear from you guys if you can think of something in your carreer that made the difference, that step up your skillset and made it easier for you to cosider yourself a professional rather than a casual.

Was it university? Your first job? A new job? A personal project? Or was it a slow gradual process of collecting the experiences and the skills on the way, without any remarkable event that magically made you a good programmer?

Link to comment
Share on other sites

Link to post
Share on other sites

A personal project, trying to learn Javascript quickly by making something.

Ended up making a webpage on which you can calculate how long it will take to download a file. Never had prior experiences with Javascript and made it in a few days. Learned quite a bit from it.

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

I made some games and a few programs like a calculator and a unit converter (http://www.mediafire.com/download/95g3hausbatxt0s/Converter.jar) i also made a piglatin and a blackjack program in Ruby.

My Car: http://linustechtips.com/main/topic/274320-the-long-awaited-car-thread/?p=4442206


CPU: i5 4590 |Motherboard: ASRock H97M PRO4|Memory: Corsair Vengance 8gbs|Storage: WD Caviar Blue 1TB|GPU: ZOTAC GTX 760 2gb|PSU: Thermaltech TR2 500W|Monitors: LG24M35 24" & Dual 19"|Mouse:Razer DeathAdder 2013 with SteelSeries Qck mini|Keyboard: Ducky DK2087 Zero MX Red|Headset: HyperX Cloud|Cooling: Corsair 120mm blue LED, Lepa vortex 120mm, stock 120mm|Case:Enermax Ostrog Blue Windowed


 

Link to comment
Share on other sites

Link to post
Share on other sites

For me the best experience is just from coding day in day out at work. The more projects you get stuck into, the more you will learn each time. I do enjoy online courses though, Lynda.com is a good place to get some good programming knowledge, but other than that. Just code code code. If there programming seminars, or events on in my area I would 100% attend them but unfortunately I live in intelligence black hole.

// Gigabyte 990FXA-UD3 // AMD FX-8320 CPU @ 4.3 Ghz (7-21.5 Multiplier) 200.90mhz FSB CPU-Z Validated // Kraken X40 AIO - 2x140mm Push-Pull // 4GB Corsair Vengeance LP - 8GB Avexir Core Series Red 1760Mhz // Sapphire R9 Fury Nitro 1130mhz/4GB 1025mhz (Effective) GPU-Z Validation // Corsair SP2500 2.1 & Microlab Solo 9C Speakers // Corsair K90 Silver - Cherry MX Red & Blue LEDs // EVGA SuperNova 850w G2

Link to comment
Share on other sites

Link to post
Share on other sites

When I accidently deleted a part of one project and I had to recover it very quick.

Link to comment
Share on other sites

Link to post
Share on other sites

For me it's finding things that aren't complete or could be made better and then working towards improving them.

Speedtests

WiFi - 7ms, 22Mb down, 10Mb up

Ethernet - 6ms, 47.5Mb down, 9.7Mb up

 

Rigs

Spoiler

 Type            Desktop

 OS              Windows 10 Pro

 CPU             i5-4430S

 RAM             8GB CORSAIR XMS3 (2x4gb)

 Cooler          LC Power LC-CC-97 65W

 Motherboard     ASUS H81M-PLUS

 GPU             GeForce GTX 1060

 Storage         120GB Sandisk SSD (boot), 750GB Seagate 2.5" (storage), 500GB Seagate 2.5" SSHD (cache)

 

Spoiler

Type            Server

OS              Ubuntu 14.04 LTS

CPU             Core 2 Duo E6320

RAM             2GB Non-ECC

Motherboard     ASUS P5VD2-MX SE

Storage         RAID 1: 250GB WD Blue and Seagate Barracuda

Uses            Webserver, NAS, Mediaserver, Database Server

 

Quotes of Fame

On 8/27/2015 at 10:09 AM, Drixen said:

Linus is light years ahead a lot of other YouTubers, he isn't just an average YouTuber.. he's legitimately, legit.

On 10/11/2015 at 11:36 AM, Geralt said:

When something is worth doing, it's worth overdoing.

On 6/22/2016 at 10:05 AM, trag1c said:

It's completely blown out of proportion. Also if you're the least bit worried about data gathering then you should go live in a cave a 1000Km from the nearest establishment simply because every device and every entity gathers information these days. In the current era privacy is just fallacy and nothing more.

 

Link to comment
Share on other sites

Link to post
Share on other sites

For me it was a weird time before Open Source existed and some friends and I were able to take a class compiler project and turn it into a product. You really couldn't do that today, but there are always new opportunities. The LLVM project is changing the rules in so many fields today.  I bet LLVM experts can name their own price right now.  But I'd say just keep up with technology trends, and do deep dives when you can so you really understand why people are choosing the technology.  It is no use to just chase the latest buzz words, you really have to understand what the problem is and how it is being solved. Don't just recite "best practices" or defer to authority; keep digging until it makes sense to you in your own way. Once you do enough of this then you'll be the one creating the next hot tech!

Link to comment
Share on other sites

Link to post
Share on other sites

A course in optimization at school. Never thought there were so many possible things to do optimizations. From high level optimizations, to SIMD, to precalculating bilinear filtering of palatalized textures.

Link to comment
Share on other sites

Link to post
Share on other sites

Trying to write a project consisting of several thousand lines of code for the first time really helped me learn organization strategies.

 

Other than that, almost everything was just practice. Having a programming job helps with that.

Link to comment
Share on other sites

Link to post
Share on other sites

Working on a project with another person can make you step back and examine your code. Comments are good. Make sure your code is readable from somebody who isn't you. It can also enforce doing things in a better way since there will be other eyes on your code examining it and criticizing it.

Link to comment
Share on other sites

Link to post
Share on other sites

well for beginners doing a privat project is really good if its something you are really interested in. i personally started with the old school game bomberman in c#.

but then when it comes to what important at a job level i had to learn how to do thing the right way so for eyample how to write a function properly so it can be tested by unit tests. how to work with team foundation server. how to use bug tracking tools. how to do the documentation right and all that stuff. try doing some research on those topics or enlist in some workshops like i did. because knowing how to code is one half. the other half is knowing the tools used in bigger teams and how to work well with others. so learning how to write readable code.. how to write test and documentation is just as important. see my signature for a good piece of advice ;)

"You know it'll clock down as soon as it hits 40°C, right?" - "Yeah ... but it doesnt hit 40°C ... ever  😄"

 

GPU: MSI GTX1080 Ti Aero @ 2 GHz (watercooled) CPU: Ryzen 5600X (watercooled) RAM: 32GB 3600Mhz Corsair LPX MB: Gigabyte B550i PSU: Corsair SF750 Case: Hyte Revolt 3

 

Link to comment
Share on other sites

Link to post
Share on other sites

When my diploma professor asked me to write program to find greatest of 3 numbers on board.(in C)

Wrote the program correctly but with wrong spelling of greatest :P

Loving programming since then

Desktop:

CPU : i5 4440 | Motherboard : Gigabyte B85M-D3H | RAM : Kingstone HyperX blu 4GB x2 | GPU : Asus R9 280X DC II Top [RIP 2017] | PSU : Corsair VS 550W | Display(s) : Dell S2240L | Mouse : Logitech G400s | Operating System : Windows 7 64bit

 

Laptop:

Acer Predator Helios 300 (CPU: Intel Core i5 7300HQ | GPU: GTX 1050ti | RAM: 16GB RAM | Operating System: Windows 10 64bit)

Link to comment
Share on other sites

Link to post
Share on other sites

Working on a project with another person can make you step back and examine your code. Comments are good. Make sure your code is readable from somebody who isn't you. It can also enforce doing things in a better way since there will be other eyes on your code examining it and criticizing it.

I kinda feel like comments for the most part aren't necessary, as long as you've written your code clearly. With the exception of explaining confusing API calls, prefacing a method/source file with a description of what it's doing, or some weird hack that isn't possible to write cleanly. If you're doing something that requires comments to be readable, you should probably rethink your approach.

Link to comment
Share on other sites

Link to post
Share on other sites

I kinda feel like comments for the most part aren't necessary, as long as you've written your code clearly. With the exception of explaining confusing API calls, prefacing a method/source file with a description of what it's doing, or some weird hack that isn't possible to write cleanly. If you're doing something that requires comments to be readable, you should probably rethink your approach.

 

Altough your code may look not confusing and easy to read doesn't mean that it will be easy for others. Have some thousand lines of code not be touched or read for a while, you'll probably forgot some of the minor details and how things exactly work after a year or so. When you need to come around and fix a small issue, having comments that are detailed every once and a while will refresh your flow of thought that you had at the time of  making it and allow other to see your thought process.

Link to comment
Share on other sites

Link to post
Share on other sites

Altough your code may look not confusing and easy to read doesn't mean that it will be easy for others. Have some thousand lines of code not be touched or read for a while, you'll probably forgot some of the minor details and how things exactly work after a year or so. When you need to come around and fix a small issue, having comments that are detailed every once and a while will refresh your flow of thought that you had at the time of  making it and allow other to see your thought process.

That's what prefacing a method/source file with a description is for.

 

If you program anything in an intuitive and clear way, then there's really no need for inline comments. I make an exception for API/library calls because often they are confusingly named or do very strange things.

Link to comment
Share on other sites

Link to post
Share on other sites

That's what prefacing a method/source file with a description is for.

 

If you program anything in an intuitive and clear way, then there's really no need for inline comments. I make an exception for API/library calls because often they are confusingly named or do very strange things.

 

Ok, I agree here. I am however defending something that I particullary don't do my self all that well. I write code that is easy to read and follow with no trickery; however, members of my "team" would say otherwise sometimes. It is always good to to leave comments every once and a while saying what is happening in the next 5-20 lines, so say later down the line another team member comes along, they can glance over the code rather than interpreting the code line by line to figure out what it is doing.

Link to comment
Share on other sites

Link to post
Share on other sites

Going to a week-long coding camp this past week has really helped me as a programmer. For the final project of the class I made Tic-Tac-Toe in C# with a partner and I learned a lot from making that program.

CPU: AMD FX-6300 4GHz @ 1.3 volts | CPU Cooler: Cooler Master Hyper 212 EVO | RAM: 8GB DDR3

Motherboard: Gigabyte 970A-DS3P | GPU: EVGA GTX 960 SSC | SSD: 250GB Samsung 850 EVO

HDD: 1TB WD Caviar Green | Case: Fractal Design Core 2500 | OS: Windows 10 Home

Link to comment
Share on other sites

Link to post
Share on other sites

The best experience you can ever get is getting a job and working as part of a team.

 

I included the job part because just writing code with your mates who will likely be at a similar skill level won't help you to progress and learn. Get into a real job working alongside developers with experience and you will notice you will begin to learn from them.

Link to comment
Share on other sites

Link to post
Share on other sites

Your profile picture scares the shit out of me

he's working towards improving windows 98

 

to everyone else, thank you all for your comments :lol:

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 weeks later...

While i try to figure things out i would like to hear from you guys if you can think of something in your carreer that made the difference, that step up your skillset and made it easier for you to cosider yourself a professional rather than a casual.

Was it university? Your first job? A new job? A personal project? Or was it a slow gradual process of collecting the experiences and the skills on the way, without any remarkable event that magically made you a good programmer?

 

I think that anyone who is apt to state, think or believe that they are good is ultimately being conceited and is deluding themselves. In our industry there’s so much scope for constant improvement… vertically and horizontally. Deciding that you are good is synonymous with deciding that you have reached the end of your journey – its self-limitation.
 
I've worked with some self-proclaimed ‘technical gods’ and some who have never even attained a degree. I've learned so much from the latter and so very little from the former… This is digressing a little though.
 
So for me I suppose I could quantify the thing that most affects my ability and path not just in the industry but in life in general as being plain and simple strife. Specifically when I am faced with a hopeless situation or seemingly insurmountable obstacle or when life is literally imploding in around me. That time when we break down and start crying that it’s all too late. That’s the place where I found out the true meaning of: “failure is not an option”.
 
I certainly ascribe to the philosophy that the greatest achievements are attained in wartime. It’s when we are under the most pressure and stress that we are truly capable of making our best progress as an individual or as a race… or when we are told that we cannot or should not do a thing.
 
When I look back and reflect upon my journey so far it certainly seems as though I have had (and continue to have) a real predisposition to finding these kind of situations. Years ago when I was doing my blue collar job I expressed my aspirations to go and find more from life. I was promptly told that I would come crawling back a total failure, broken and begging for my job back. Later, on my degree when I sought help with modulo from a lecturer I was told (quite publicly) that due to my learning difficulties I would ultimately amount to being a total failure and a risk in industry and therefore I ‘had no right to be taking up a valuable place’ on the degree, that I didn't ‘deserve’ to be there. Then there was the option of taking an industrial placement at the end of my second year – I chose (and needed) to find a real job with a real income – and did that instead at the same time as my third year dissertation (and discovery of pregnancy – first daughter).
 
There’s been other situations more recently but I feel that these in particular have been especially pivotal to me as they have set the direction of my journey. Incidentally I am now facing another one of these, possibly one of the most difficult and arduous yet (hence my decreased presence on the forum)…
 
It’s in these kind of make or break situations we have a choice to make; we may choose to concede and crumble or we don’t and keep moving forwards. We are the ones who choose what to take away with us from the lessons that we face. It’s worse as well when it’s not just us alone but our family that stands to be hit by our failure – that’s why you have to eliminate it as ever being option in the first place. Then at some point along the way you will look back and realize that you can’t even remember the point at which you crossed that line that separated you from being an aspirant to being a professional…
 
But on a lighter note I have found that plenty of PONY helps a great deal!
 
vfqiiCG.png

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

For me it is trying to do what I am afraid of. That is doing what I have never tried before and I am not sure if I can pull off. This summer I made my first android app and I'm thinking about publishing it on the Play Store, once I have implemented all the features I initially intended it to have. So yeah do what kinda "scares" you and you find difficult. For me that is probably going to be 3D Graphics or web development, since now I've pretty much done everything there is with simple 2D Gui :D Quitting University and your job was a really brave thing to do and I find it admirable! Anyway, have fun and I wish you the best of luck!

MacBook Pro 15' 2018 (Pretty much the only system I use)

Link to comment
Share on other sites

Link to post
Share on other sites

Remember DRY (don't repeat yourself)

Also read a guide on object oriented programing and functional programing


//Does not work. Needs fixing

Link to comment
Share on other sites

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×