ClioSport.net

Register a free account today to become a member!
Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • When you purchase through links on our site, we may earn an affiliate commission. Read more here.

Who codes in C#? Where do I start to learn



GrahamS

ClioSport Club Member
  335d
Looking to learn some very basic c# coding as a lot of job applications I'm looking at are very interested in it.

Has anyone got experience of self learning this code? Where shall I start? I'm a very very logical person so from a brain POV it won't be a problem, just don't have any experience of this.
 

Typhoon

Gangsta
ClioSport Moderator
C# is the main language I use. Taught myself years ago!

Drop me a PM later and I'll send you an eBook tutorial. "C# For Dummies"
 
  mk1 Octavia VRS
What jobs are you looking at that require it and what do you do now? Have you got any programming experience?

There should be plenty of tutorials online. I would start with those, write some simple programs and see how you get on.
Other important things to understand that are not language specific:
  • Object Orientated Design
  • Data structures
  • Memory allocation/deallocation (object creation/deletion) - less of a concern for C# desktop apps but can still have a big effect on performance
 

GrahamS

ClioSport Club Member
  335d
C# is the main language I use. Taught myself years ago!

Drop me a PM later and I'll send you an eBook tutorial. "C# For Dummies"

Google is my friend! Got it :) If you self taught I've got some hope, just want to pick up some basics in the next few months so if I put I have a basic knowledge I won't look like a clown when they ask.

What jobs are you looking at that require it and what do you do now? Have you got any programming experience?

There should be plenty of tutorials online. I would start with those, write some simple programs and see how you get on.
Other important things to understand that are not language specific:
  • Object Orientated Design
  • Data structures
  • Memory allocation/deallocation (object creation/deletion) - less of a concern for C# desktop apps but can still have a big effect on performance

Looking at trading firms which program a lot of their algorithms in C#. I'm really just looking to have a skill which other graduates won't have.

I don't actually have any proper programming experience bar some html when I was about 13 and more recently a touch of very simple excel VBA and MQL4.
 
  Clio
Don't become a programmer.
Your job can be done for less than 5% the cost in many many places around the world.
 
  mk1 Octavia VRS
Looking at trading firms which program a lot of their algorithms in C#. I'm really just looking to have a skill which other graduates won't have.

I don't actually have any proper programming experience bar some html when I was about 13 and more recently a touch of very simple excel VBA and MQL4.

Hmm OK. If it's just writing algorithms then the OO design bit I mentioned is probably less important than the other two. I'd suggest reading tutorial material then playing around with some simple example programs. Once you have done that a good exercise might be to implement some different sorting algorithms from scratch.

Don't become a programmer.
Your job can be done for less than 5% the cost in many many places around the world.
There are plenty of programming jobs that aren't getting outsourced. iOS/Android app development maybe, but bespoke embedded systems, projects that require security clearance and projects that require face to face meetings & site visits less so.
 

GrahamS

ClioSport Club Member
  335d
Don't become a programmer.
Your job can be done for less than 5% the cost in many many places around the world.
I'm not but it would be very helpful for me to be on the same wavelength as the guys who are coding some of the programs, knowing what's possible, how the program actually works. I know several coders who most certainly aren't being outsourced for the reasons @172_Tom describes.

Hmm OK. If it's just writing algorithms then the OO design bit I mentioned is probably less important than the other two. I'd suggest reading tutorial material then playing around with some simple example programs. Once you have done that a good exercise might be to implement some different sorting algorithms from scratch.
Will do, thanks for your help Tom. I've got the books and a 6 hour intro to c# on youtube so shall report back in a couple of weeks.
 

GrahamS

ClioSport Club Member
  335d
Was it this video you used, did you find it helpful?

Yeah that's the one! I haven't actually had time to look into this properly but I've had someone kindly set me up a PC with an SQL server and basic application so I can get to grips.

I did watch a touch of the video and wrote the standard "hello world" application with it.
 

sbridgey

ClioSport Club Member
  disco 4, 182, Meglio
I code in C# mainly, get yourself a free trial at pluralsight and watch a few of the beginner courses to try and get a good background knowledge of the basics.
 
  182, S-Type 3.0L
Highly recommend subscribing to the following podcasts
.NET Rocks!
Hanselminutes
Herding Code
This week on Channel 9

Listening to podcasts will give you some great insight on how everything in the world of Microsoft programming fits together and will highlight new technologies you might want to look at and learn.
 

sn00p

ClioSport Club Member
  A blue one.
What is your language of choice? I'm gonna laugh so f**king hard if it's Java, Ruby or PHP. :smile:

C or C++ with a sprinkling of assembler thrown in here and here. For desktop software, C++ with Qt, proper cross platform. ;)

I do spend a lot of time looking at compiler output to see what code it's generated and whether in critical places I can make a better job of optimising the code than the compiler.
 
All good languages, Ruby Rails inspired .NET MVC

For sure, there's lots of stuff which has been inspired/used etc, just trolling sn00p as you usually find people who hate .NET are in one of the above camps, most usually java :p

C or C++ with a sprinkling of assembler thrown in here and here. For desktop software, C++ with Qt, proper cross platform. :wink:

I do spend a lot of time looking at compiler output to see what code it's generated and whether in critical places I can make a better job of optimising the code than the compiler.

Cool xD
 

sn00p

ClioSport Club Member
  A blue one.
For sure, there's lots of stuff which has been inspired/used etc, just trolling sn00p as you usually find people who hate .NET are in one of the above camps, most usually java :tongueout:

Java's motto was "Write once, run anywhere." where basically, it should've been "Write once, run anywhere, horribly.".

I hate it, and I hate Eclipse with an even bigger passion. Apps look like b*****d children of every operating system going, they don't behave like they should on any OS and they run like dog s**t. I have the misfortune of having to use eclipse for one of the microcontrollers we use and it drives me up the wall.
 

SharkyUK

ClioSport Club Member
I've got a bit of programming experience mate :smile: My suggestion would be to code, code, code and work on small projects to build up a demonstrable portfolio of what you can do. Getting a job inside a trading firm is not necessarily easy and they often require incredibly talented engineers with many, many years of experience. I'm currently talking through a potential Bloomberg contract and, despite looking for application specialists, they require 15 years experience and knowledge of compilers, what goes on under the hood, proven industry experience, etc. Thankfully I'm old and worked on a lot of stuff. Don't expect to go in high up the ladder. There's a massive shortage of talented coders these days but it doesn't mean getting a high paid role is easy. Businesses are becoming increasingly cautious about who they work with as far too many are being stung by a significant lack of skills in people they employ. Hence, code, code, code and prove you have the ability to implement something tangible and demonstrable. And be prepared to work your way up from a junior-type role :smile: (I tcould well be worth it long-term).

Good luck and go for it :smile:
 
  182, S-Type 3.0L
I've got a bit of programming experience mate :smile: My suggestion would be to code, code, code and work on small projects to build up a demonstrable portfolio of what you can do. Getting a job inside a trading firm is not necessarily easy and they often require incredibly talented engineers with many, many years of experience. I'm currently talking through a potential Bloomberg contract and, despite looking for application specialists, they require 15 years experience and knowledge of compilers, what goes on under the hood, proven industry experience, etc. Thankfully I'm old and worked on a lot of stuff. Don't expect to go in high up the ladder. There's a massive shortage of talented coders these days but it doesn't mean getting a high paid role is easy. Businesses are becoming increasingly cautious about who they work with as far too many are being stung by a significant lack of skills in people they employ. Hence, code, code, code and prove you have the ability to implement something tangible and demonstrable. And be prepared to work your way up from a junior-type role :smile: (I tcould well be worth it long-term).

Good luck and go for it :smile:

By contrast getting a job as a front end web developer is very easy! Very easy learning curve, bucket loads of documentation and very easy to build a portfolio as your work will be on-line.

I am primarily an application developer but I do front end too, it's very simple :smile:
 

sn00p

ClioSport Club Member
  A blue one.
Seeing all this talk of ultra high level languages makes me think I'd kill for ram on the product I work on!

120 kilobytes of ram and in that I have... RTOS, Bluetooth stack, tcp/ip stack, USB device stack, USB host stack, eMMC + FAT stack. That's before I even get to my application layer which does signal sampling and DSP processing.

No dynamic memory, all memory is statically allocated!
 

sn00p

ClioSport Club Member
  A blue one.
@sn00p sounds quite similar to the sort of work I do :)
What do you do buddy? (if you can say)

I've worked on a project for nearly 3 years the out various iterations of spec on a radar for vehicle detection. It's ultra low power and we have customers using it in some pretty cool stuff. The main radar board also has a secondary processor on it which has 500 bytes of ram which I use for various other functions! (the same tiny processor is also use on our ancillary boards)

The radar system has been designed to be plug and play, so you can just connect our gprs modem, Bluetooth, led driver, io etc boards in and they just work.

I also built desktop software for controlling and configuring it, that's written in c++ using qt and a component plug in system I wrote so that it's all modular and we can provide an sdk to third parties to extend the software.

I have to think like a hardware engineer, so I spend a lot of time looking at schematics, debugging circuits, deciding where signals should connect and saying "I want this chip instead of this one" etc.
 

sn00p

ClioSport Club Member
  A blue one.
That's more than enough... :tonguewink:
On the most complex one I have zero bytes free. You won't believe how long I spent optimising stuff and hand tweaking pieces of code to make it fit in.

Worst of all the stupid linker doesn't tell you how much ram you are running over by, just tells you that you've run out of space. Helpful.
 
  mk1 Octavia VRS
What do you do buddy? (if you can say).

I work for a consultancy company so it varies. For the last 3 years ish I've been working on a product with an STM32F4 microcontroller (192k RAM, 1MB flash) which is written in C. Like yours there's no dynamic allocation of memory and as it's C & RTOS there's no exception handling either. That's coming to an end now so currently re-visiting a Java project that I worked on in 2012, then next year hopefully working on a new project which I think will be C++.
 

sn00p

ClioSport Club Member
  A blue one.
I work for a consultancy company so it varies. For the last 3 years ish I've been working on a product with an STM32F4 microcontroller (192k RAM, 1MB flash) which is written in C. Like yours there's no dynamic allocation of memory and as it's C & RTOS there's no exception handling either. That's coming to an end now so currently re-visiting a Java project that I worked on in 2012, then next year hopefully working on a new project which I think will be C++.

I use the F2!

Although we did stick some F4's on some boards because they have DSP instructions, but the overall power consumption went up. (our product uses ~4 mA) in normal operation, so microamp jumps in consumption are bad for us, let alone milliamp.

We use C++ though mainly just because it allows stuff to be self contained, don't really use any exotic parts of it.

The ADCs are mental on the F series tho uh, which is very useful for some of the ways we do signal processing.

We have our own pick and place machine and a solder jet printer, so we do all development and production in house. Design pcb, send out to me made and then we populate prototypes.

Apart from the processor BGA we've also got a 4GB eMMC chip on the pcb!

Oh and a second 16 bit processor because the wake from sleep on the STM32 from a uart rx doesn't work above 9600 baud without losing characters, so we work around it with a second processor which also handles other stuff as well.
 


Top