I want to become a programmer, any advice?

Search
Go

Discussion Topic

Return to Forum List
This thread has been locked
Messages 41 - 59 of total 59 in this topic << First  |  < Previous  |  Show All  |  Next >  |  Last >>
NutAgain!

Trad climber
South Pasadena, CA
Sep 19, 2016 - 05:21pm PT
Could probably afford a nicer place in North Dakota. But then you'd have to open the door sometimes and go outside.

Seriously though... when you factor lifestyle into the equation... if I was going to be making minimum wage as a choice to have limited hours and more time to play living in a a dreamy area... I'd rather do that getting little pay and flexible hours as a web developer than as a dish washer or grease trap cleaner. Gotta consider the whole package and what your life priorities are, where you get your satisfaction, and what material needs you are committed to.
eeyonkee

Trad climber
Golden, CO
Sep 19, 2016 - 06:39pm PT
Been meaning to post to this thread but I've been in the middle of a software release and, even more than when I am climbing, I focus intensely when I have a software deadline.

I'm actually quite a bit like you. I have a Master's in Geology and worked as a geologist/hydrogeologist for several years in the environmental engineering field before becoming a software developer. I have been a very happily-employed programmer in the scientific/engineering fields ever since.

I would say that, if you are coming at this from a natural progression; you should be fluent in Transact SQL or PSQL (SQL Server or Oracle -- you'll need a little work if your only experience is with Access). It has taken me years to make the transition from a scientist who can query a database from the front end to a serious programmer who realizes that it's not whether you solve the problem but HOW you solve the problem. You should solve it using a hierarchy of logical objects that could be understood by a bright 12-year-old.

Having said that, I have thought and been boring my friends and family for years with my contention that software programming is one the great equalizers with respect to intelligence and motivation. It is THE STEM subject that a smart and motivated individual can master and command a lot of money because of that mastery without requiring a college degree. You can't say that about Geology or Engineering -- you basically can't go anywhere without a degree in those fields. On the other hand, some of the brightest developers that I have known did not have a computer science degree.
jgill

Boulder climber
The high prairie of southern Colorado
Sep 19, 2016 - 06:47pm PT
I will mention a silly equation - Naiver Stokes. This equation describes fluid flow (fluid = liquid or gas). There is no closed form solution so no cookbook method in general works

A great many DEs are not solvable in closed form. That's one of the aspects of the discipline of numerical analysis. There are lots of schema already out there to do the job on computers.

Navier-Stokes Solver

To encounter a computational problem in science & math that does not already have a canned program for solving you might have to depart mainstream investigations and get into something more esoteric. (I program as a hobby and play around in unusual areas where either nothing is available or I would have to manipulate a high-level language like Mathematica to conform to my wishes. I found it much easier to use BASIC.)
healyje

Trad climber
Portland, Oregon
Sep 19, 2016 - 07:46pm PT
My biggest issue with my current job is that I don't work in waste water

Vegas or PDX.
Darwin

Trad climber
Seattle, WA
Sep 19, 2016 - 08:39pm PT
Don't do it. I sucks the soul out of you after a while. I guess a lot of jobs do that, but programming and sysadding is especially good at it.
Unknown Climber

Trad climber
J-tree
Oct 21, 2016 - 10:41am PT
I am hiring, tech with ability to move to programming (SQL Server).

Must have reliable computer, internet and phone.
Looking for someone who can be available Monday – Friday 8:00 am PST – 8:00 pm PST for prescheduled appointments (scheduled 3-5 days in advance) to connect to client servers and copy data. This is a contract position that pays $25-$35 / hour. 10-40 hours per week (minimum of 10 hours is guaranteed), depending on sales cycles. The work is remote, no travel necessary. Must have a very quiet and professional environment from which to receive tech calls.

Requirements

• Must have a basic understanding of folder structures in windows, including locating and copying files.

• Need moderate knowledge of Microsoft Word and Excel OR experience using dental software.

• Familiarity with databases is helpful. Experience with Microsoft Access, SQL, or databases is a plus but not required.

• Must be very detail oriented, have excellent customer service and communication skills, understand basic tech support concepts, and be extremely reliable. All appointments must be received on time.

You will receive a 1099 for hours worked. Some work is paid by project. Since this is a contract position, there are no benefits, sick or vacation pay. Time off is based on schedule. We are a growing company with the potential for 30-40 hours of work available per week in the by the end of the year.

Please send your resume to: Kristin at
Infinitisoft@consultant.com
errett

Social climber
Grumpy Ridge
Oct 21, 2016 - 03:17pm PT
begin
If
you learn java
then
you will wish you were dead
else
learn ruby or go instead
printf("The software business sucks.\n")
end
wyeast

Social climber
Portland, OR
Oct 22, 2016 - 10:12am PT
Hi skitch,

As other posters alluded to, being a programmer/coder is easy and can be boring. Ideally you want to be a Software Developer... even better if you participate in Open Source.

My suggestions:

1. Sign up for a free GitHub account. Familiarize yourself with version control and collaboration concepts such as commit, branch, pull request, etc.

2. Install Linux on your laptop/computer. Unless you absolutely need Windows/Mac to do your job use your Linux computer for everything including browsing SuperTopo. This is like learning a foreign language by immersion.

3. Participate in an Open Source project. Pick a few on GitHub that spark your interest and start playing with them. If the documentation is not clear or confusing submit a Bug; or contribute a Pull Request! You mentioned you have been playing with bootstrap. Keep hacking away if it feels like fun to you. And also look into React.js. Those two projects came from Twitter and FB but contributors also include non-employees. You'll get to collaborate with some of the brightest people in the industry. For server side technology look into 'Docker container'.

4. Read up on GPL, copyleft and writings by Richard Stallman and Linus Torvalds.

5. Don't learn C or C++ as your first programming language. Do consider Python, Javascript, Go (a modern version of C), Ruby or Java

6. Build something fun with Raspberry Pi https://www.raspberrypi.org

7. Knowing relational database concepts/SQL is good but also look into "No SQL"

8. Podcast: http://softwareengineeringdaily.com/

I work full time (remotely) for an open source software company so my advices are obviously biased against closed source software. Ping me if you ever go to Portland on weekdays as I may be found coding away in a coffee shop.
zBrown

Ice climber
Oct 22, 2016 - 11:27am PT
Just remember, it could be worse, you might have to write assembler code.

zBrown

Ice climber
Oct 22, 2016 - 01:03pm PT
^ Just a wild guess, but I'm thinking they knew no one but you and I would be reading it?
NutAgain!

Trad climber
South Pasadena, CA
Nov 3, 2016 - 02:03pm PT
fivethirty, that \n { style probably came from coders whose bosses did | wc -l to measure their productivity ;)

I think lots of fields require a period of being an apprentice or journeyman (is more politically correct to say journeyperson now?) to become proficient in the use of the tools, and after some period you get to harness your brain to look at a real problem or desire stated by a person not proficient with the tools or the technical field, and you can choose which tools to solve the problem in the way that makes the most sense given the constraints or resources available.

At every step of the way it can be fun as long as you are on a path of learning and growth. Mastering whatever individual tools presents its own challenge, and just when that starts to get boring then you can pull in new tools and at some point you consider it all in a day's work to incorporate some new tool you've never seen before and you know you'll be able to figure it out when you work on that part. And then your joy will be derived from envisioning the assembly of all the building blocks, using a variety of tools, to create the main solution, the main object of value in the real world.

So if you are in it for the long haul, it doesn't really matter where you start as long as you start in earnest, knowing it's just the first step in a long journey with joys and tribulations all throughout. Have fun with it! Some people get easily bored, but if you can appreciate the growing core of knowledge and capability you are building, and appreciate the little joys of solving problems no matter how small or seemingly insignificant, then nothing will stop you. If you aren't able to identify with those little moments of joy and satisfaction, it's going to be a long and difficult slog.
NutAgain!

Trad climber
South Pasadena, CA
Nov 3, 2016 - 03:38pm PT
Too bad there are no <pre> directives in supertopo markup language.
Srbphoto

climber
Kennewick wa
Nov 3, 2016 - 04:58pm PT
Get a PE

That's pretty solid advice.

Then wait the mandatory 18 months and get your NIS. Then you'll be set :)

Just do it. You are almost to the point it will be hard to bail and start over (there can be a bit of an age "issue" for older people just breaking into tech).

Don't leave Bend!!! As someone who tries to get down as much as life allows, consider yourself very lucky to live there.
skitch

Gym climber
Bend Or
Topic Author's Reply - Nov 3, 2016 - 08:11pm PT
I don't know where learning to code will take me, but I'll continue on to see how much fun I can have with it. When I have time I will be redesigning the website for my work, and possibly the website for my coworkers.

I'm currently a third of my way through CS50X, which is proving to be quite challenging but I'm learning a lot. I'll likely go towards Javascript via freecodecamp.com after CS50X, mostly because it gives the student very tangible projects to work on, then you "get" to work on non-profit work in teams after you've "proven" yourself.

I actually live in Bishop, but I was born in Bend and lived there when I was younger so I say that I'm from Bend.
Srbphoto

climber
Kennewick wa
Nov 3, 2016 - 09:05pm PT
I actually live in Bishop, but I was born in Bend and lived there when I was younger so I say that I'm from Bend.

Don't leave Bishop. I used to try and and get there as life allowed. The food isn't as good as Bend but you do have mules.
jstan

climber
Nov 4, 2016 - 08:35am PT
From what you describe it sounds like your current job is to make sure what the heavy equipment
people do....meets print. That's basically a QA job. My condolences.

BUT

You have a chance to do jobs bearing on WATER. There is nothing more needed than water. Get
together with Base104 and see if you can improve methods for determining aquifer volumes and get
better measures of expected life in the face of overdraft.

Jobs become great when there is passion.
Reilly

Mountain climber
The Other Monrovia- CA
Nov 4, 2016 - 08:42am PT
Bend is short for Bendover. At least Bishop is real.
ms55401

Trad climber
minneapolis, mn
Dec 3, 2016 - 05:02pm PT
does anyone know python well? or hadoop? I might have to "learn a lot of python or hadoop" in the next 6 months

I don't have a formal programming background but I do lite programming in several (unmarketable) idioms (e.g. Matlab, SAS, R)
TomCochrane

Trad climber
Santa Cruz Mountains and Monterey Bay
Dec 4, 2016 - 12:59pm PT
Hmmm...

I've been an itinerant laborer in computer fields since the days of hard-wired mechanical relays, patch boards programming, manually entered bootstraps, vacuum tube logic circuits, and magnetic core memories. It is scary for me to walk through the Mountainview Computer History Museum and realize how much of my life was dedicated to so many of those ridiculously obsolete machines on display.

People seem to assume computer software will solve all problems, sort of a universal solvent for information management.

However software is just another tool, and like most tools it restricts what you can do with it. Spoken/written languages severely limit what you can think. Software languages severely limit what knowledge you can represent and manipulate. This indicates the root challenge of knowledge representation and inference engines for artificial intelligence. Symbolic representations are not necessarily the best means to capture all conceptual thought.

Computer software programming is not necessarily always a productive career; in spite of people's current infatuation with the subject. Sometimes software is just chewing gum for your mind. Some people are actually addicted to coding. Sometimes it can certainly be useful. Sometimes it is just a distraction or obfuscation; sort of a job works program for nerds.

Choice of a tool comes much later in requirements analysis of a project.
What job/project do you want to accomplish?
Who is the team to do the job, and their level of relevant domain knowledge?
What is the structure of appropriate information management tools?
Is a computer program helpful to the team in capturing/manipulating the information management structures of the project?
If software is helpful, what are the most appropriate available software tools?

Many newly available tools and component libraries allow a much more direct approach to design challenges than earlier systems. It is not uncommon on larger projects to periodically start over from scratch with a new set of tools, as more efficient than continuing to develop and maintain the original development path. However sometimes maintaining ancient legacy code is unavoidable due to organizational inertia and loss of domain expertise. Having the fortitude to address such questions is a very valuable capability.

Partial list of systems I have used:
Home built computers in Idaho on 4x8 plywood substrates using parts from junked juke boxes and telephone company trash cans
Autocoder on punched paper tape (IBM 1401,705,7080, 1440,1460)
BOS on IBM 360 series
SNOBOL, FORTRAN IV, APL, BASIC on mag tape (SDS 940 with Tymshare Monitor)
MUSIC on punched paper cards (Varion 620i)
CP/M, COBOL, FORTRAN IV, Unix, C (DEC PDP-8, PDP-11, LSI-11, VAX 11/780)
USAF ANGYK-31 Pattern Searching Supercomputer (in charge of construction and delivery)
BASIC, WordStar, SuperCalc, DBaseII, Milestone, LISP, PROLOG, OPS5, OPS83 (Osborne personal computers)
Carnegie Group KnowledgeCraft, LISP, (TI Explorer, Symbolics)
IRIX, C++, EarthVision, OpenGL (Silicon Graphics Indigo, IRIS)
ESRI ARC/INFO, MapInfo, ArcMap, ArcView, ArcGIS, AutoCAD (SUN Workstations, PCs)
ARC3D, OVERFLOW, CFL3D, HyperWall, CART3D, FAST, CGT (NASA Supercomputer Division D/Pjt Mgr)
MS Project, TimeLine, MatLab, C++, C#, SysML


The best natural talent for a programmer is an infinite tolerance for ridiculous unfathomable frustration. Given all that it can be fun; especially if you avoid working for the dark side.

Messages 41 - 59 of total 59 in this topic << First  |  < Previous  |  Show All  |  Next >  |  Last >>
Return to Forum List
 
Our Guidebooks
spacerCheck 'em out!
SuperTopo Guidebooks

guidebook icon
Try a free sample topo!

 
SuperTopo on the Web

Recent Route Beta