Page 2 of 2

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Sat Jan 07, 2017 6:39 pm
by BRUTE
luxagraf wrote:Why are you comparing an operating system and the world's best text editor?
mic drop

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Mon Jan 09, 2017 10:33 am
by ducknalddon
luxagraf wrote:As for using libraries vs writing your own, there may be times when writing your own lib is necessary, but I'd argue those times are far less common than the times you should use what others have already written, tested and debugged for you.
I don't know, it may be the niche I work in but I spend quite a lot of time at the bottom of the stack implementing some fundamental types.

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Mon Jan 09, 2017 4:05 pm
by James_0011
On a related note, how easy is it to get jobs working remotely as a developer? Any experiences?

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Tue Jan 10, 2017 3:26 am
by FBeyer
The one thing about programming that gets me is that I don't know how to get feedback on the quality of my code when I don't work with more experienced programmers to tell me.

I'm from STEM and I've 'worked' with FORTRAN, python, bash, Julia, Matlab, R, and C, but really my exposure is so limited that I know that I'm not really expressive is those languages, even though I worked for almost a year and a half with FORTRAN [1].

I know that I should git commit like crazy and fix only one problem per commit. That I'm working on.
Documenting code and readability has always been important to me, but I don't know what 'industry quality' looks like. I know what scientist code looks like and it works... but only just. I DO NOT want to be associated with scientist programming, but phrasing my goal in terms of negatives is not as constructive as phrasing it in terms of positives, but I don't know what the end result should look like...

So: Where does one go to gauge how well one codes and especially how good one's workflow is when you're self-taught?



[1] The nature of the project meant that I wasn't developing a whole lot of new things, rather than adding MPI parallellization for existing crazy-ugly code that did very complex quantum mechanical calculations, surviving was more at the front of my mind that elegant implementation...

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Tue Jan 10, 2017 5:27 am
by James_0011
Have you considered contributing to open source projects like Firefox? My understanding is that your code has to be reviewed to get approved.

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Tue Jan 10, 2017 9:57 am
by luxagraf
ducknalddon wrote:
luxagraf wrote:As for using libraries vs writing your own, there may be times when writing your own lib is necessary, but I'd argue those times are far less common than the times you should use what others have already written, tested and debugged for you.
I don't know, it may be the niche I work in but I spend quite a lot of time at the bottom of the stack implementing some fundamental types.
yeah that squares with my experience as well, the closer you get to the bare metal the fewer people working and so the fewer existing libraries there are. Probably also depends somewhat on the language, some make reusing existing libraries easier than others.
James_0011 wrote:On a related note, how easy is it to get jobs working remotely as a developer? Any experiences?
You mean as opposed to having to show up in an office? I think they'll usually end up being entirely different things.

I've never interviewed for an in-person programming job, but that's because I've never wanted one/there aren't any near where I live. I like to approach the whole thing as "I am a freelance programmer" and I have clients who need help solving some problem. Sometimes that problem takes a month, sometimes two years. If you approach it like that I would say that it's pretty easy to get remote-only work provided you have the skills/experience and a way to market yourself. I started by working as the development part of web/ad agency. As I started working with some bigger clients (brand names people know) other people started to find me and reach out. Now I'm about 50% my own clients (which tend to be lower-level programming, database and sysadmin work) and 50% in partnership with an agency (higher level programming, scripting languages like python, etc). [Edit: I should probably note that it has taken about 8 years to get this point, so not really an over night thing, but certainly possible. And I gave up on programming entirely for about a year and half in there, so if you actually stick with it you can probably do it in half the time I did.]

On the other hand if you want to work on a larger project as part of a big team those sorts of jobs tend to want you to show up in-house, though not always. I interviewed for a position at Mozilla that would have been remote, alas didn't get it, but then the product since fizzled so probably just as well.

In my experience it's not necessarily easier or harder to work remotely just different types of work out there.

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Tue Jan 10, 2017 10:05 am
by Scott 2
Remote work - I've yet to be on a dev team that wouldn't allow at least a few days a month. That's OK for someone new to the field.

My current team is remote 80% of the time. Our youngest team member is about 30, doing QA, and was just hired having around 8 years experience. We almost exclusively hire mid to senior level. A new dev needs immersion into the field, which includes working together in person, a lot. Starting fully remote would really short change your and your company. I think it's also likely to short change your starting salary.

IMO getting better as a dev will happen quickest and most effectively by being part of a good team. If that's important to you, either you have to leave our build it. Filtering through everything online to find the quality advice is tough. There's also an aspect of pragmatism that is critical to being a good developer. Often the best choice is to get in, tack on the tiny update, and leave the working rats nest alone. Other times, it is best to throw away and start from scratch. I don't know how you learn that without working on a quality team.

My team has one on one peer review, full team code review, sends every team member to a full week conference annually, provides the enterprise edition of visual studio, will pay for books, will pay for plural sight courses, and requires team members to peer review their architecture ahead of implementation. Those are things you might look for. A group that has successfully implemented continuous integration is also a good indicator of experience.

Plural sight is popular for learning new ideas. People like to talk about having a git repository and working open source, but most of the devs I know are too busy doing paying work to screw around with that. If the peer quality is low (idealists or people not good enough to get paid), it might not be worth the opportunity cost.

I don't think you have to be a good dev, or even employed, to get paid, btw. Contract work is out there. You can build an app. You can build a website. Work is not something blessed upon you by the employment gods.

Re: How long to become a proficient programmer/Can I get hired with a math degree?

Posted: Sun Jan 15, 2017 10:10 am
by Sclass
FBeyer wrote:The one thing about programming that gets me is that I don't know how to get feedback on the quality of my code when I don't work with more experienced programmers to tell me.
Documenting code and readability has always been important to me, but I don't know what 'industry quality' looks like. I know what scientist code looks like and it works... but only just.
So: Where does one go to gauge how well one codes and especially how good one's workflow is when you're self-taught?...
Lotsa interesting points in your post. I was once referred to as a "scientific programmer" early in my career. It was kind of an insulting title. :D

A great self taught software guy I worked with (he was EE hardware by schooling) recommended that anyone who was serious about becoming a better programmer should study the Linux source. Then contribute. I never did but I think it was a good tip. In 1998...may not be current.

He saw me in the class of (embedded systems) programmers who could make the machine work reliably but in a crude way. This kind of happens when you learn by hacking if you don't study good code or get mentored. Just compiling and moving forward can do this. This thread is really bringing it out.

Learning assembly helped me understand arithmetic better. Didn't exactly help my coding. I guess I'd worry about compiler optimization where my non assembly friends would just trust the machine. Funny how fifth grade math is a bunch of blind methodical rules that really come to life when you have to understand how a machine does it. This is what assembly did for me. Kind of the backwards direction for the OP ;) .

I can recall some silly things a guy who didn't understand processor architecture coded that made inefficient moves in an arithmetic logic unit on one job. He was a mathematician incidentally. He demanded more and more clock rate and bus width till I dissected his code line by line in a department meeting and painstakingly illustrated all his silly shifts in and out of the core. Funny, he still works at HP. I lost my job shortly after that. That may have been a career ender. :lol: one of my old friends says that guy still uses what he learned in that public ass kicking to look smart in front of management. They call it Sclass's ghost when this geek gets up there talking about designing for speed.

Remote work? I guess it depends on what you're doing. The guys I knew who could do this were really badass developers with years of experience. Part of that was the ability to work independently, some of it trust, and some of it was their ability to demand their terms based on our need for their expertise.