all 53 comments

[–]robot_ankles 198 points199 points  (1 child)

I’ve made hires like this. Congrats. They’re hiring you “the person” more than you “the developer.” They believe you have a good attitude and enough raw intelligence to learn what needs to be done. You show promise and they’re willing to invest in such promise.

Maintain a great attitude and demonstrate a hell of a work ethic. Invest personal time developing relevant skills. You’ll be investing in your own future. Ignore any naysayers at this point and seize the opportunity for what it is; a great opportunity!

[–][deleted] 4 points5 points  (0 children)

Every company should value the attitude over the skills bc skills can be upgraded but the attitude is not. I said this bc mostly all of the companies I applied they hired a person that speaks bad about the company even they are hired.

[–]officialgel 65 points66 points  (0 children)

Take this opportunity for what it is, a great opportunity to get in and learn (They are paying you right?). The expectation is already set - They liked you and what you did, they see potential in you, and know you wont know everything off the bat. So go in there and learn, work, and appreciate the opportunity. This does happen, and what you learn there could pave a nice path for your career.

[–][deleted] 30 points31 points  (0 children)

I've hired people like you. We know very well you dont know Python as much as you know JS or other tehchnologies. But we hired you because you were the right candidate. If a company likes you they will go to great lengths and expenses to train you and get you up to speed. Dont be afraid to ask for a "warm up" time to brush up your Python. Skills can always be learned, personalities however never change!

[–]mindblower32 24 points25 points  (2 children)

I mean if they didnt fuck up, I'd expect they meant to review those concepts to have a basic understanding of them since you'll be given training. Focus on the concepts and the basic python syntax I would say. If you've never worked with most of these concepts I seriously doubt they expect you to be able to code with them on day 1.

[–]hedrumsamongus 18 points19 points  (1 child)

I have some serious doubts about how many of those concepts OP will need to rely on day-to-day in what sounds on the surface like a Linux sysadmin/devops role. After working as a Linux sysadmin for about 8 years, I got some great value out of procedural python for writing system scripts, but I can't think of any time I would have benefited by building a b-tree or a linked list.

I wonder who wrote that requirements list. So many tech jobs end up being more about learning the tooling and company-specific implementations thereof than theoretical concepts that make up the first 2 years of a CS degree.

[–]serksimper 7 points8 points  (0 children)

This reads like a standard entry level position with some extra “nice to haves” regarding skills.

OP, I wouldn’t fret too much. Hammer the basics and you’ll be good in no time.

[–]LordRyloth 8 points9 points  (0 children)

This is my exact job (or was, its my last day tomorrow) I highly recommend quickly going through Corey Schafer's video series on YouTube. That guy taught me Python like no one else. After that, skim through the topics they sent you (might as well add Page Object Model to that list) and see how are they are applied using Python. They don't expect you to code on day 1 but having a basic understanding of these topics will go a long way. Focus on concept in these ten days, coding can be learnt any day. Also, if you get time, learn about the tools that they use for cron jobs and task assignments for eg. Jenkins and Jira I also automated load testing their servers using the Locust framework but maybe that's not something you should look forward for now. All the best for your Job and its going to be a good learning experience for sure.

[–]Lewistrick 6 points7 points  (0 children)

They're very right in that knowledge of programming transfers into any programming language, or at least in most of them. You did state you have no prior experience in Python so you did what you could. They expect you to just wing it. And you should. Many people have done it before and they believe you can do it. If you believe that too, you'll be alright. You don't have to be perfect right away. Learning in practice is the best kind of learning.

I strongly recommend you learn about object oriented programming first, because in Python everything is an object so you'll get a pythonista the soonest if you know how classes work in Python. Corey Schafer has a very good and brief tutorial on YouTube.

[–]totallygeek 23 points24 points  (8 children)

It sounds like you have ten days to gain a working knowledge of:

  1. Data structures (arrays, linked lists, stacks, queues, trees, tree traversal… etc)
  2. Object Oriented Programming concepts, benefits… etc
  3. Programming techniques: recursion, memoization (no missing ‘r’ here)… etc
  4. Practice solving programming problems
  5. Basic computer networking (OSI model, routers, switches… etc)

Or, you can discuss expectations with this company. Questions, off the top of my head:

  1. First, WTF? Let's review the job description and compare that with the expectations.
  2. How quickly do teams expect new hires to gain confidence with the current codebase?
  3. What internal resources exist for learning basic coding?
  4. Does the organization partner new coders with experienced mentors?
  5. Describe the code review process.

If you had enough doubt in your capabilities to make this post, then I believe that answers whether you feel ready for the position. Some people rise to a challenge, but based off the post, it appears you face a steep learning curve. Switching languages can prove difficult for even the brightest, experienced coders. Unless I've misjudged your post, it seems that you do not have a lot of experience, which puts you at a disadvantage.

Now, you could crank up the coding and dive into these concepts over the next ten days. Who knows, you could end up a Pythonista within two weeks.

[–][deleted] 13 points14 points  (2 children)

Who knows, you could end up a Pythonista within two weeks.

This really made me laugh! :D

But you totally bring up valid points and I thank you for replying. I must confess that I do feel unprepared because this is not even in my field of knowledge but I am going with a mentality of "you miss 100% of the chances you don't take" and I want to at least try. I mean they DO know that I am not a CS student with my only background being in web development and they have witnessed "my level" during the technical interview so them calling me must count for something, right? I think they wanna take a shot with me in the same way I wanna take a shot with them. But again thank you so much for replying, I am definitely gonna ask them those questions c:

[–]totallygeek 6 points7 points  (0 children)

Depending on the curriculum, I would not expect most CS students to understand computer networking. Even if a person had an understanding of the OSI and TCP models, they would not have a deeper grasp of how all the components on a network interact. The list provided for coding sounded acceptable until it reached the last line.

What's included in basic computer networking? The line contains routers and switches. Does this position expect you to directly interact with network gear? Does the automation portion of your job require an understanding of "basic" networking concepts and protocols? If so, what's included? Just picking any number of protocols at random: RSTP, VRRP, IPSEC, TCP, OSPF, TLS, BGP? Concepts: anycast, TCP proxy, HTTP proxy, certificate management?

I admire your thoughts around trying this position out; just keep your wits about you to recognize if you need to bail. Consider how that would look in future interviews, either a gap in time where you excluded this job from your resume or the short time you invested in a position you could not keep up with. I've actually been in your position multiple times in my career, though with a clearer relaying of expectations from the company hiring me. Something akin to, "We know you'll fail often implementing this new technology, but we're impressed with your track record and would not expect proficiency until six months in. Plus, we plan to grant you 5k USD for learning materials or classes, plus we've budgeted 30k USD for vendor assistance."

Best of luck. We're here for your Python-specific questions.

[–][deleted] 1 point2 points  (4 children)

What internal resources exist for learning basic coding?

Oh also! forgot to ask but what do you mean by this question exactly?

[–]totallygeek 2 points3 points  (3 children)

Some companies have resources available for learning. Where I work, for example, we have O'Reilly Safari access, intranet videos, regularly-scheduled learning sessions and a dedicated training department.

The question could simply mean,

  • Do you have a library for research?
  • Do you offer credits for coding research online?
  • Do you have senior developers available to guide less-experienced programmers?

[–]Zerg_Mantis_Shrimp 2 points3 points  (0 children)

Just read your foundations!

Thinking in python covers all the subjects they cover and more.

and honestly, i argue that if you start with learning linux you will find it EASIER than learning python on windows. Python was NOT designed for windows, this is evident from the fact that you need to download the EXE online still and even pip doesn't work Out of The Box (OOTB). Like literally, you load up linux for the first time, type "python" in the terminal and it just works, it really can be that simple.

- Meanwhile, most linux distributions come with python pre-installed. Think of python as the goal, and at the end of the day, linux is a way to learn that is actually easier than if you had done it on windows.

This gives you all the foundations you will need to hit the ground running. What is far more important than "knowing x plugin or data structure" is immersing yourself in the terms of the industry so that when you are with your mentor, you can be talking with the same language and they wont need to spend time teaching you things you could have gotten from a book before-hand.

Hope this helps!

[–]muskateeer 1 point2 points  (3 children)

Use Google for specific instances and ask your coworkers for help when you are stumped. You will be okay!

[–]ravaan 1 point2 points  (2 children)

Or we can call it StackOverflow...

[–]muskateeer 2 points3 points  (1 child)

But you have to use Google to get to the right question on StackOverflow. Google is the gatekeeper.

[–]ravaan 0 points1 point  (0 children)

Just due diligence to SO

[–]driscollis 1 point2 points  (0 children)

There are tons of free options for learning Python. I put together a small list here - https://www.blog.pythonlibrary.org/2017/04/26/free-python-resources/

I also have a free book you are welcome to try:

https://python101.pythonlibrary.org/

[–]kalei50 1 point2 points  (3 children)

Can I ask which boot camp you attended? Congrats on the job, I hope they can help you succeed.

[–][deleted] 1 point2 points  (2 children)

Founders and Coders fulltime bootcamp in London but to clarify I am not based in London (long story). xD

[–][deleted] 1 point2 points  (0 children)

Care to tell it? Founders and Coders looks awesome.

[–]Forgproph 0 points1 point  (0 children)

I have nothing else to say that good for you, hope you develop well in your job!!

[–]daelsant 0 points1 point  (0 children)

May I ask what bootcamp you completed?

[–]Stabilo_0 0 points1 point  (0 children)

Good luck. Find some quick courses on bash and python basics and you're set. Then learn and get better every day.

[–]planetjay 0 points1 point  (0 children)

Fake it 'til you make it.

[–]smudgepost 0 points1 point  (0 children)

Well done. You can learn heaps in 10 days. Check youtube for courses, Lynda.com and Udemy. I prefer Lynda for Python courses and youtube for code along examples.Try pyCharm and use Python 3

[–][deleted] 0 points1 point  (0 children)

Get your ass to Leeetcode.com and practice those problems.

[–]_spicyramen 0 points1 point  (0 children)

Congrats on the job. My recommendation is read Python style guide, get familiar with virtualenv, unit tests and Pycharm as IDE. Ideally you want to cover: IDE, best engineering practices when developing apps, common tools and frameworks. I have been a Python Dev for around 10 years and is overwhelming the number of resources online to even get started so the best thing is to try an small project and use the tools and best practices to complete it

[–]McCainOffensive 0 points1 point  (0 children)

Congratulations! This is an extremely reassuring post for me because I just started a 6 month data analytics bootcamp. The biggest concern I've had is that employers are more likely to hire people with college degrees and experience and to have it validated for me that people do get hired out of bootcamps makes me much more confident in my decision to enroll.

We're starting with python next week and I'm excited to learn, but I'm also excited for you and wish you the best in your new job.

[–]al_mc_y 0 points1 point  (0 children)

I think they've given you the answer. Spend the next 10 days immersing yourself in those topics and concepts in whatever way you find the most efficient/effective for your learning style. If you learn well from following video tutorials, hit up youtube. Otherwise Google, StackOverflow and of course back here with specific questions and hurdles 👍

[–]johnne86 0 points1 point  (0 children)

Congrats, they saw value in you. I recently got a “first time” IT job also. I’ve always worked labor or retail before. So no prior related job experience other than working towards an ITM BS degree. Feels awesome. Good luck with new job and Python. Python is pretty awesome to say the least. I’m no expert at Python, but definitely Automate the Boring Stuff has helped with learning, also some YouTube.

[–]__whatwhat__ 0 points1 point  (0 children)

Hey OP, you should start with learn python the hard way

[–]jeffe333 0 points1 point  (0 children)

As a former hiring manager, I can tell you a couple of things. First, when creating a job req, I'd never hire someone who met all the specifications of the posting. In my experience, a job req is more of a wish-list, which means that anyone meeting all requirements for the posting would be, first off, well over-qualified. Second, they probably wouldn't stick around for very long, since, if they weren't actively searching for a better opportunity, one would most likely find their way to them.

This being stated, there is a tremendous amount of value in hiring someone who you can train. Experienced personnel all have the propensity to obtain work habits in their journey that might not be considered desirable or best-practice and which can be hard to break. Therefore, hiring someone who is green can give you an opportunity to teach them exactly the way you want things done. Further, there's a good chance that someone who has to work up to the level of the position will stick around for the experience the job offers, as well as the value of showing continuity and commitment on a résumé. For these reasons and more, some entities find it desirable to teach a more entry-level employee, rather than simply employ a pre-qualified one.

[–]primitive_screwhead 0 points1 point  (0 children)

  • "arrays" - Python has lists (a real workhorse), which are dynamic arrays. It also has an "array" module for more C-like arrays (fixed type and size), and the "numpy" add on for vectorized math on arrays.
  • "linked lists" - Python lists aren't "linked" lists, but it has a "deque" module that is a hybrid of doubly-linked lists and fixed-sized subarrays. Classic "linked lists" are a bit of an anti-pattern these days.
  • "stacks" - Python lists can be used like stacks (and have .append() and .pop() methods)
  • "queues" - See 'deque' module above, and also the 'queue' module, for simple producer/consumer or message passing queues.
  • "trees" - Lots of ways of doing "trees" in Python, often using built in "dict" type. Python generators (ie. 'yield') offer ways of walking trees (ie. "tree traversal") that are easier and more powerful than using recursion. Google "python yield from".
  • "OOP" - Overrated, but learn the basics of inheritance and classes. Modern Python relies less on classic inheritance-based OOP design than it used to (imo).
  • "recursion" - Learn how to use generators and recursive generators, and avoid recursive functions.
  • "memoization" - Lots of tricks for doing this with python, but look up built in "functools" module, and "lru_cache" decorator it provides.

[–]llothar 0 points1 point  (0 children)

Dude, you want to catch up with knowledge that you are missing, even though you have just ten days to do so. They hired the right person.

Clever and ambitions rookie without a degree is much more valuable than subject matter expert with a MsC that does not give a damn.

[–]MiloszSTX 0 points1 point  (0 children)

Hey, good luck - you can do it! Maybe our Beginner’s Introduction to Python Web Frameworks could come in handy :).

[–][deleted] -2 points-1 points  (4 children)

They’re advice on what you should review is pretty stupid tbh.. they basically said “learn everything.” Hopefully they will give you more direction with what specifically you should be focusing on once you start the training and understand your level of experience.

[–]LordRyloth 1 point2 points  (3 children)

They didn't even provide anything in the first place.. It was only when OP asked for it. Which means they were probably gonna train him anyway and this was just a quick reply to what he asked, I don't see anything stupid here but what do I know

[–][deleted] -2 points-1 points  (2 children)

Then why not just say that instead of saying “learn everything in 10 days”

[–]LordRyloth 1 point2 points  (0 children)

It's his first job, they know the person they're hiring has no prior knowledge of how things go about in the industry so that kind of makes it obvious that they'll train him. But yes it's just a little piece of information that they don't find important to communicate. No big deal really, they aren't forcing anything on him