Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

Learning programming languages 5

Status
Not open for further replies.

BSMEclassof2012

Mechanical
Jun 19, 2015
52
0
0
US
Hello fellow Engineers:

I am seeking your opinion. I am full-time mechanical engineer with 12 years of experience. As a side interest, I am considering learning programming languages like Python. I am interested in finding an unpaid internship in programming where I can learn and apply my skills, offering my dedication in return. Is it feasible to find a remote, unpaid internship in a programming language?
 
Replies continue below

Recommended for you

The common paradigm is that an internship is essentially a 3-month job interview, so that's a potential deal-breaker for most companies, since this is a "side" interest. Moreover, if you aren't doing the internship full-time, then the company isn't getting their time's worth for supervising and mentoring you, especially if you aren't going to be available as a potential future employee. The internships that my kids had led directly to job offers; in one case, the offer wasn't even predicated on finishing college, but that was non-starter.

TTFN (ta ta for now)
I can do absolutely anything. I'm an expert! faq731-376 forum1529 Entire Forum list
 
In addition to what others have said, I believe that this (emphasis mine):

BSMEclassof2012 said:
...unpaid internship in programming where I can learn and apply my skills

is illegal in the US, so you hopefully won't find it. You'd have to either ditch the unpaid part, or the apply part for it to be legal (as I understand it).
 
1-Start with an excellent resource Automate boring stuff with Python by by Al Sweigart. Link

2-Start creating small programs for everyday use e.g. bolt load check/bolt preload calculation.

3. Sign up for university programming course instead of intarnship which will have dual benefits-certification and forced "application" of acquired knowledge to face the exam.






 
It would be more fun if you just get an Arduino and build a few kit projects instead. Learn at your own pace, invent a few things that interest you. There's no bottom to a rabbit hole like that. You'll be coding the whole time. And building things while thinking about how you'll code them.

Plus you get to keep your job and salary.
 
The amount you can learn off the internet is amazing. I would instead look around and try to find tools that you need and program them instead. Over the years I've programmed the following to help me with my day job:

- Tender request generator. I was managing the plant's instrumentation calibrations and verifications so created an instrument database to keep the maintenance records and added a button that filled in the blanks in a word template to generate the files to request a quotation from the calibration labs. The last iteration annexed the files to an email and populated the fields.

- Retrieving lists of WiFi users and how much they used. This was with python and web scraping a crappy website to generate an Excel sheet with data usage to see if no one was abusing.

- Calculating the average home price in a given radius. This was quite interesting, I took the data from the UK government around sold properties and with other data sets around location of post codes managed to retrieve the post codes within a radius from another and retrieve the records that met these conditions.

- Generating SCADA tags (this is with Excel and VBA).

I'm sure you have similar problems. The big problem and most important lesson is being able to take a big problem and break it into small problems. Taking the first example, it's creating a database, understanding the best way to put the data in tables, then how to link the relevant data to each other and then how to filter the data for different needs. Once that is done, it's reading how to open a word file, how to search for markers and replace with data from a table and lastly save the file. Once you figure out how to break the large problem into a small one, you'll be well on your way to know how to program.
 
Hello everyone,

Thank you for replying to this post. I really appreciate it.

As advised, I am currently learning the basics of Python and creating simple programs (see example below). My goal is to automate repetitive tasks at work. Could you guide me on the next steps?


print("Welcome to a new Game!")
playing=input("Do you want to play a game? ")
if playing=="no":
quit()
else:
print("Ok. Lets play a game")
question_1=input(" What is the population of Los Angeles? ")
if question_1=="3898747":
print("That is correct")
else:
print("that is not correct")
question_2=input("What is the average temperature of Sun? ")
if question_2=="10000 F":
print("that is correct")
else:
print("that is not correct")
question_3=input("How old was Abraham Lincoln when he died? ")
if question_3=="56":
print("that is correct")
else:
print("that is not correct")

 
Looks like you have a few steps that are missing. What is your goal with this game?

I'm not terribly familiar with Python, what is the member type for the questions? Are you accepting user inputs as strings only, and then comparing the input string to the check string? Appears that is the case from what you have shown above.

For Q1, what happens if I type in " 3898747", where there is a space at the beginning of my input, would that cause my answer to be determined as incorrect?

If I answer Q1 wrong, do you have a check to ask again until I answer it correctly, or do you just skip to the next question, what if I want to quit the program before all questions are asked, do you have a way to exit the program in the middle of reading inputs from the user?

For the first question "Do you want to play a game?", what happens if I answer "No"? The capitalized 'N' will likely cause the next line to execute, even though the quit method is intended to execute. You should use a method to assign to a boolean value, or for all characters to be rewritten in a lower or upper case and then checked by the tool.

For Q2, what happens if I write the answer in Celcius or Kelvin? What happens if I am missing the 'F' part? What happens if I type in "10001 F", would that cause it to fail the question? May consider taking the input string, converting to an float or double, and then checking unit cases and have the user's answer be correct if they are within 1% or something. Alternatively, you can indicate in the question statement that the answer must be in fahrenheit, but you'll still probably want to give some bounds to a correct answer (should 9999 really be a failing answer?).

What about adding up together the number of answers the user got correct and returning that back to the user at the end of the method?
 
In addition to ChorasDen's good suggestions....

You've written a program that does fundamentally the same thing three times. A fundamental part of programming is to not do that. Instead, write a function that does the thing and pass it parameters to make it behave as desired each time you call it. This makes the code much more maintainable, because then you only have one place to make changes in the future.

Why don't you try to write a function to ask a question, then revise your code to call the function three times.

The next step would be to avoid "hard coding" your questions within the program. Instead, put the questions and answers in an external file for your program to read. This allows someone with no programming knowledge to modify the test without modifying the program.

Both of those suggestions are independent of the programming language.

There are literally thousands of websites with structured Python tutorials. Pick one and start working through to gain a basic understanding.

Personally, I find it more motivating to have my own project to work on rather than a tutorial. Define what you need to do, then figure out how to do that with the language you're interested in.

You say that you want to automate repetitive tasks. Pick one and try!
 
Status
Not open for further replies.
Back
Top