A checklist for selecting a right first job in programming
https://upload.wikimedia.org/wikipedia/commons/6/69/Pair_Programming_3.jpg

A checklist for selecting a right first job in programming

There was an interesting discussion on a FB thread by one Krinza, which let me speak about learning and the importance of the first job. Here is a raw version of my thoughts; I feel it is still useful as it resulted in a check list :)

Disclaimer: when I am saying "learning" below. It is learning to become a better programmer. Some of this could be valid to other fancy roles: data scientists, cloud engineers, etc., but for the venture-backed startups, at the top of the tech food chain are the world-class programmers and the immediate future (3-5 years) belongs to them.

So, different people learn in different ways:

  1. Some learn from existing people. So for many most important thing is who else will be there to mentor or coach us? What are their credentials? What have they delivered?
  2. Some learn more from the assignments. So for them, the most important is what is the path to becoming an individual contributor in the production code; Can they make mistakes without causing too much problem (good companies have automation in place or peer-reviews that provide good feedback)
  3. Some learn from reflection. For them, an important thing is: what are the measures in place to reflect on how we are doing, e.g., what we had to change in version 2 and why? What is our code review feedback over a timeline telling us?
  4. Some learn from peers. Are the best programmers from my class (or who were a year senior) working here? I can probably grow more by working together with them.
  5. Some learn from diversity. Are their people from different background with different approaches and skills?

The above is not exhaustive and is not mutually exclusive for many. But one can come up with a checklist to see if the place is the right one for them.

Ask some of these, when interviewers or recruiter ask if you have any questions :)

  1. Do they have a proper version control, e.g., GIT
  2. Do they have automation? (you can safely do changes in existing code if there is automation)
  3. Do they check in unit tests alongside code?
  4. Do they focus on dev experience? Rather than dev setting the dev environment, better companies have Dockers setup that can get someone up to speed in a few hours.
  5. Do they have more unit tests than integration? Do they have more integration tests than automation? https://martinfowler.com/arti.../practical-test-pyramid.html
  6. Do they have a formal code review process, e.g., language review, reuse review, code smells, etc.?
  7. Do they have a focus on documenting software design decisions? https://www.industrialempathy.com/.../design-docs-at-google/
  8. Do they have a formal training process to get the new joiner up to speed with the tech stack and dev environment?
  9. Do they have the right dev environment, e.g., dual-screen, plenty of meeting rooms, SSDs on dev machine, plenty of RAM, access to tools such as code profilers, credits to buy Udemy courses, etc.?
  10. Do they have formal coaching sessions? Where the senior engineer across the teams talk about design decisions, they took in line with the tech strategy, or they speak about various architectural tradeoffs they are taking (e.g., not using microservices because it is a bad idea in our case because of ABC reason)
  11. Do they incentivize people to write high-quality code?
  12. Do they have OKRs around professional development?

The above is not an exhaustive checklist, but it should give an idea.

The first job is the most important one IMHO. Your first TL or EM is very important. Your peers are very important. Your contribution to what the team is doing is very important.

The best thing a new joiner can ask for is to get a chance to work with good developers.

Reference: Above list is implicitly inspired from https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/

--------------------------------------------------------------------------------------------------------------

If anyone here wants to work in a world-class engineering environment out of Pakistan, then consider EMPG (Zameen, Olx, Dubizzle, etc.). We have a super focus on writing high-quality code to solve challenging problems. I have also published a preparation list to help applicants do their best in our hiring process https://asim-ghaffar.medium.com/empg-engineering-interview-preparation-guide-756f8b7b0342

--------------------------------------------------------------------------------------------------------------

If students are reading this, then check this out if you are passionate about building a programming career https://asim-ghaffar.medium.com/cs-freshie-have-this-in-your-resume-39532b2fd934

要查看或添加评论,请登录

Asim Ghaffar的更多文章

  • How do you deal with team members leaving for a 10% salary increase?

    How do you deal with team members leaving for a 10% salary increase?

    Someone asked the above question in a WhatsApp group. And I read it as: How do you "proactively" manage team members…

    16 条评论
  • Welcome to the team. #Throwback

    Welcome to the team. #Throwback

    A few years back, I wrote a welcome message to anyone who joined my team then. As I read it, I can say it is still…

    1 条评论
  • On building tech teams in Pakistan

    On building tech teams in Pakistan

    I had an interesting discussion with Syed Ali on building tech teams. Here are a few things I strongly feel about, and…

    2 条评论
  • 2019 >> 2020: Reorienting to focus

    2019 >> 2020: Reorienting to focus

    I really didn't have a theme but 2019 ended up being a year of closures for me. I not only wrapped up my 5 year-long…

    4 条评论
  • I'm contesting for P@SHA Election

    I'm contesting for P@SHA Election

    I am contesting for Pakistan Software Houses Association Elections for CEC this year. I want to thank Syed Ali? for…

    9 条评论
  • Fellowship: making Open Government Partnership relevant to digizens*

    Fellowship: making Open Government Partnership relevant to digizens*

    In the past five years, the most obvious changes seen in Pakistan as a digital society and economy can easily be…

  • Still missing Linkedin Pulse?

    Still missing Linkedin Pulse?

    if you are one of me who missed LinkedIn pulse then here is one way to get alternate access to pulse content i.e.

  • Big Data Policy for Pakistan: a few thoughts to initiate a dialogue

    Big Data Policy for Pakistan: a few thoughts to initiate a dialogue

    A few months back, I was asked by someone working for a government agency to share my thoughts on Big Data Policy for…

    9 条评论
  • SDG Hakathon

    SDG Hakathon

    Calling All Civic-Minded Geeks! Do you have ideas about how to fix things? Do you like working with other intelligent…

  • Digital delivery of education for achieving a socioeconomic leapfrog

    Digital delivery of education for achieving a socioeconomic leapfrog

    The day before yesterday, I attended National Consultative Conference on Higher Education Commission (HEC) Vision 2025,…

    2 条评论

社区洞察

其他会员也浏览了