<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Crystal Song</title>
    <description>The latest articles on DEV Community by Crystal Song (@educrystal).</description>
    <link>https://dev.to/educrystal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F793451%2F8d84c022-3bb7-4924-9d8d-cb03f8e62abc.png</url>
      <title>DEV Community: Crystal Song</title>
      <link>https://dev.to/educrystal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/educrystal"/>
    <language>en</language>
    <item>
      <title>HerCode: Tips for negotiating compensation as a woman in tech</title>
      <dc:creator>Crystal Song</dc:creator>
      <pubDate>Tue, 05 Apr 2022 13:46:40 +0000</pubDate>
      <link>https://dev.to/educative/hercode-tips-for-negotiating-compensation-as-a-woman-in-tech-50bl</link>
      <guid>https://dev.to/educative/hercode-tips-for-negotiating-compensation-as-a-woman-in-tech-50bl</guid>
      <description>&lt;p&gt;"What are your salary expectations?" &lt;/p&gt;

&lt;p&gt;Knowing that you've thoroughly convinced your prospective employer that you'd be an excellent fit for the role, how are you supposed to answer this question? Generally speaking, people want the highest possible salary with the best possible benefits package. However, you're unsure how to answer the hiring manager honestly without giving off the impression that you're being purely motivated by money.&lt;/p&gt;

&lt;p&gt;The reality is that it's completely fine to be motivated by money. Unless you're an independently wealthy individual who likes to work as a hobby, the chances are high that you rely on a salary to pay for living expenses and to realize goals outside of work (like purchasing your first home). An employer with good intentions will always want to compensate you fairly for your work! So it's best to be honest about your expectations. &lt;/p&gt;

&lt;p&gt;Regardless of your comfort level when negotiating job offers, it's important to remember that &lt;strong&gt;you deserve to be compensated fairly for your labor&lt;/strong&gt;. Learning to negotiate for a better compensation package is a vital skill that can directly impact the quality of your life, and there is some evidence that &lt;a href="https://www.researchgate.net/profile/Muhammad-Chaudhry-11/publication/321905698_EXPLORING_THE_RELATIONSHIP_BETWEEN_SALARY_SATISFACTION_AND_JOB_SATISFACTION_A_COMPARISON_OF_PUBLIC_AND_PRIVATE_SECTOR_ORGANIZATIONS/links/5a38db71458515919e7278c8/EXPLORING-THE-RELATIONSHIP-BETWEEN-SALARY-SATISFACTION-AND-JOB-SATISFACTION-A-COMPARISON-OF-PUBLIC-AND-PRIVATE-SECTOR-ORGANIZATIONS.pdf" rel="noopener noreferrer"&gt;salary satisfaction can affect performance, motivation, involvement, and inspiration at work&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;We'll talk about some of the contributing factors to the &lt;a href="https://vtechworks.lib.vt.edu/bitstream/handle/10919/92671/WomenSTEEMWorkplace.pdf?sequence=1&amp;amp;isAllowed=y" rel="noopener noreferrer"&gt;gender pay gap&lt;/a&gt;, and why it has become essential for women to insist on being compensated fairly. Then, we'll go over some great tips to help you break down the negotiation process. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We’ll cover&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the gender wage gap?&lt;/li&gt;
&lt;li&gt;
5 tips for negotiating compensation

&lt;ul&gt;
&lt;li&gt;1. Always negotiate&lt;/li&gt;
&lt;li&gt;2. Determine the market value for your role&lt;/li&gt;
&lt;li&gt;3. Identify non-negotiables&lt;/li&gt;
&lt;li&gt;4. Consider the entire compensation package&lt;/li&gt;
&lt;li&gt;5. Prepare and justify your counter offer&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Wrapping up and next steps&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the gender wage gap?
&lt;/h2&gt;

&lt;p&gt;A "wage gap" refers to the difference in compensation between two groups. There are many types of wage gaps that can appear depending on gender, ethnicity, sexuality, age, and more, which necessitates an intersectional approach to closing wage gaps across differing demographics. &lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://nwlc.org/resource/the-lifetime-wage-gap-by-state-for-women-overall/" rel="noopener noreferrer"&gt;National Women's Law Center&lt;/a&gt;, white women currently earn $0.82 for every dollar earned by white men. The average lifetime losses due to this wage gap in the United States is a staggering $406,280!  &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5 tips for negotiating compensation
&lt;/h2&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Always negotiate
&lt;/h3&gt;

&lt;p&gt;Negotiation is a vital skill that can directly impact the quality of your life. If you're not sure how to navigate those conversations without feeling uncomfortable, then you're not alone. In a survey that collected 1,296 responses from women at major tech companies like &lt;a href="https://www.educative.io/blog/crack-amazon-coding-interview-questions?eid=5082902844932096" rel="noopener noreferrer"&gt;Amazon&lt;/a&gt;, Microsoft, and Google, &lt;a href="https://docs.google.com/spreadsheets/d/1VS4Gqnf-S10NIyXPATBL29yhhpl6QnmM5VKoyiiR6Pg/edit#gid=0" rel="noopener noreferrer"&gt;20% of respondents stated that they &lt;strong&gt;do not&lt;/strong&gt; negotiate if the offer is fair, and 47% of respondents said that they &lt;strong&gt;always negotiate&lt;/strong&gt; but find it uncomfortable&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That being said, negotiations are one of the few times when you have the chance to &lt;strong&gt;earn thousands&lt;/strong&gt; for some brief discomfort. &lt;/p&gt;

&lt;h4&gt;
  
  
  Initiating the conversation
&lt;/h4&gt;

&lt;p&gt;Companies interested in retaining women should be prepared to initiate regular conversations with their employees to make sure that they're being paid a competitive wage. Unfortunately, there can be times when terms of wage determination are left ambiguous, leaving the burden of initiating negotiations with the employee. &lt;/p&gt;

&lt;p&gt;In a study published by the National Bureau of Economic Research, researchers found that men were more likely to negotiate their salaries than women when &lt;strong&gt;no explicit statement of negotiability&lt;/strong&gt; was made. &lt;/p&gt;

&lt;p&gt;However, when employers explicitly mentioned that they'd be willing to negotiate wages, the gender gap closed. Unsurprisingly, these findings also meant that the gender pay gap ended up being far more pronounced in workplaces where paths to career advancement and salary negotiations were left ambiguous.&lt;/p&gt;

&lt;h4&gt;
  
  
  What's the worst that could happen?
&lt;/h4&gt;

&lt;p&gt;The worst that can happen is that the employer will reject your terms. The more likely outcome is that you will be able to reach a mutually satisfactory compromise with the employer that improves on the initial offer.&lt;/p&gt;

&lt;p&gt;A common fear is that a job offer will be rescinded if you try to negotiate, but this is &lt;strong&gt;exceptionally rare&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;If fear of retaliation or &lt;a href="https://www.educative.io/blog/hercode-overcoming-imposter-syndrome?eid=5082902844932096" rel="noopener noreferrer"&gt;uncertainty about your value&lt;/a&gt; is holding you back from initiating negotiations, then it's even more important that you prepare yourself to negotiate anyway. By preparing to negotiate, you're putting yourself in the mindset to push past ambiguity and hypotheticals. &lt;/p&gt;

&lt;p&gt;Even if you've been told that the offer is final, you can still ask if they'd be willing to schedule a six-month review with the possibility of increasing compensation based on performance. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lean in and be proactive when it comes to negotiations. &lt;/li&gt;
&lt;li&gt;Feeling uncomfortable about negotiating is normal but pushing through the awkwardness is worth it &lt;/li&gt;
&lt;li&gt;Don't let the fear of rejection prevent you from negotiating&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Determine the market value for your role
&lt;/h3&gt;

&lt;p&gt;The salary band you can reasonably negotiate for shouldn't be based on what you believe your labor is worth but on what the market is &lt;strong&gt;willing to pay&lt;/strong&gt;. You should &lt;strong&gt;always&lt;/strong&gt; negotiate your compensation because, at the moment, the market valuation for professional tech workers is through the roof. &lt;/p&gt;

&lt;p&gt;There's &lt;a href="https://www.educative.io/blog/salary-negotiation-tips-for-software-developers?eid=5082902844932096" rel="noopener noreferrer"&gt;plenty of demand for skilled tech workers&lt;/a&gt;, and the competition between companies to secure talented employees gives the hiring manager room for negotiating salary and benefits. &lt;/p&gt;

&lt;p&gt;Entry-level software engineers, engineering managers, designers, product managers, and the like can expect to make anywhere between $120K  to $250K in annual compensation. With experience, this compensation package can jump up to $300K and upwards of $1M. &lt;/p&gt;

&lt;p&gt;So, even if you're reluctant to negotiate because the compensation being offered seems fair, you should still ask for some time to consider the offer and &lt;strong&gt;prepare to negotiate&lt;/strong&gt;. Remember, they want &lt;em&gt;you&lt;/em&gt;, and doing your due diligence will ensure that you're not underestimating the value you'll add to their company. &lt;/p&gt;

&lt;p&gt;Furthermore, big tech companies like &lt;a href="https://www.educative.io/blog/google-coding-interview?eid=5082902844932096" rel="noopener noreferrer"&gt;Google&lt;/a&gt;, Amazon, and Netflix typically expect their candidates to come prepared to negotiate. It may be easier to approach negotiations by reminding yourself that the hiring manager is prepared to make concessions to secure your talent. These companies are often competing with each other for a limited pool of skilled workers, so negotiating is almost always in your best interest. &lt;/p&gt;

&lt;p&gt;To determine your market value, you'll need to compare and research. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fun fact&lt;/strong&gt;:&lt;br&gt;
Some states in the U.S. are tackling legislation that will require companies to be more transparent about salaries in a broader effort to ensure fair compensation for workers. These states are California, Colorado, Maryland, Nevada, Rhode Island, and Washington. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before starting, think about the following factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Job title and description&lt;/strong&gt;: What is the position you are applying for? What are the responsibilities and expectations for this position? &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Location&lt;/strong&gt;: Salaries can vary greatly depending on the geographic region that the job is based in. Applicants tend to receive higher salaries if the position is located in cities like San Francisco or Seattle where the cost of living is higher than in smaller cities. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experience level&lt;/strong&gt;: How much relevant experience do you have, and what can employers expect you to contribute based on your qualifications? Being more experienced can help you command higher salaries and more generous benefits. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Company and industry&lt;/strong&gt;: What companies are you applying to? Depending on the industry and size of the company you're applying to, you may need to adjust your expectations. &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: There are many more factors that can influence a negotiation. Certifications, education, subject matter expertise, a history of significant achievements, and other skills can be used as persuasive leverage. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now that you have a good idea of what positions to research, you can utilize a variety of resources to determine your market value.&lt;/p&gt;

&lt;h4&gt;
  
  
  Salary comparison sites
&lt;/h4&gt;

&lt;p&gt;Plenty of websites track compensation data across different occupations and industries. Some popular sites for comparing salaries and benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.levels.fyi/?compare=Google,Facebook,Microsoft&amp;amp;track=Software%20Engineer" rel="noopener noreferrer"&gt;Levels.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.glassdoor.com/Salaries/index.htm" rel="noopener noreferrer"&gt;Glassdoor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.linkedin.com/?trk=public_jobs_nav-header-logo" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These sites allow you to refine your search by title, location, company, and much more. &lt;/p&gt;

&lt;h4&gt;
  
  
  Reach out to your professional network
&lt;/h4&gt;

&lt;p&gt;Try joining a reputable group geared towards professionals in your field. You can find these groups on places like &lt;a href="https://linkedin.com/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or on chat apps like &lt;a href="https://slack.com/" rel="noopener noreferrer"&gt;Slack&lt;/a&gt; or &lt;a href="https://discord.com/" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;. You may even be able to find local professional associations specific to your industry. Asking people in the role you're applying can return valuable perspectives, which can come in handy for finetuning your expectations. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For example, a technical writer might join the &lt;a href="https://www.writethedocs.org/" rel="noopener noreferrer"&gt;Write the Docs&lt;/a&gt; community to connect with other technical writers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Government resources
&lt;/h4&gt;

&lt;p&gt;Check to see if your government conducts and makes any national compensation surveys available. &lt;/p&gt;

&lt;p&gt;For example, if you visit the &lt;a href="https://www.bls.gov/bls/wages.htm" rel="noopener noreferrer"&gt;U.S. Bureau of Labor Statistics&lt;/a&gt;, you can look up comprehensive measures of compensation cost trends, benefits coverage, and wages. Visitors can even narrow down wage data by occupation on a national, regional, state, and metropolitan level. You can even check for earnings data based on demographic characteristics that are typically unavailable on typical salary comparison sites.  &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Identify non-negotiables
&lt;/h3&gt;

&lt;p&gt;Identifying non-negotiables depends on your circumstances and knowing what's essential for &lt;strong&gt;you&lt;/strong&gt; to thrive at work. Start thinking about what a job offer must include for you to accept it. &lt;/p&gt;

&lt;h4&gt;
  
  
  Must-haves
&lt;/h4&gt;

&lt;p&gt;Do you want to work remotely or have flexible time off? People want to feel secure in their jobs, and sometimes the absence of a benefit can be a significant deal-breaker. &lt;/p&gt;

&lt;p&gt;Here are some things to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Health benefits&lt;/strong&gt;: Is the employer offering high-quality health coverage? &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retirement&lt;/strong&gt;: Are you actively saving for retirement or still figuring things out? Is it essential that your workplace offers a 401(k)? &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paid time off (PTO)&lt;/strong&gt;: If work-life balance is important to you, you may want to negotiate for flexible time off (FTO) or more vacation time. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible work options&lt;/strong&gt;: Some people love being in the office, and others can't imagine commuting every day to work. Flexible work options can make a massive difference in the quality of life for people who care for someone at home or need accommodations for disabilities. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paid parental leave&lt;/strong&gt;: If you're planning on starting a family, then &lt;a href="https://www.educative.io/blog/balance-software-engineer-mother?eid=5082902844932096" rel="noopener noreferrer"&gt;having good parental leave benefits may be high on your list of priorities&lt;/a&gt;. If you have no intention of having kids anytime soon, then you might not care as much if parental leave &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Determining your salary band
&lt;/h4&gt;

&lt;p&gt;If possible, try not to bring up a salary number or range until later in the interview process. If a recruiter is pressing you during the phone screen or an interview for an expected salary number or range, you can try to flip the question by responding, "Could you share the salary range for this role?" &lt;/p&gt;

&lt;p&gt;Alternatively, you could also give a number or range that is on the &lt;strong&gt;higher end&lt;/strong&gt; of the market rate for that role, giving you room to comfortably make concessions during the interview process. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recruiter&lt;/strong&gt;: "What kind of salary range are you looking for?"&lt;br&gt;
&lt;strong&gt;You&lt;/strong&gt;: "Well, the going rate for software engineers with my experience is around $130k to $140k so I'm hoping for something within that range. However, I'm definitely open to negotiating based on the entire compensation package." &lt;/p&gt;

&lt;p&gt;To quickly determine your salary band, take a look at the pay scales for the position you're applying for and base your answer off of what you find. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The lower limit of your salary band

&lt;ul&gt;
&lt;li&gt;Keep the lower limit of your salary band &lt;strong&gt;at least 10% above&lt;/strong&gt; your current salary&lt;/li&gt;
&lt;li&gt;The Council for Community and Economic Research provides a useful calculator for comparing the cost of living index between cities: &lt;a href="https://store.coli.org/compare.asp" rel="noopener noreferrer"&gt;Cost of Living Index Calculator&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The upper limit of your salary band

&lt;ul&gt;
&lt;li&gt;There's no rule on what your upper limit should be, but try not to make the range unreasonably large (e.g., stating your range as &lt;strong&gt;$48,000 to $500,000&lt;/strong&gt; instead of &lt;strong&gt;$48,000 to $58,000&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Finally, make sure that you know when to walk away from an offer. If it does not make financial sense to accept an offer, and there is no room for negotiation, it is perfectly reasonable to turn down the role. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Negotiating your salary should be based on what you're bringing to the table, and never on what your current or previous salary was. If your past salary doesn't line up with the salary you currently deserve, &lt;strong&gt;do not&lt;/strong&gt; disclose it. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Consider the entire compensation package
&lt;/h3&gt;

&lt;p&gt;Now that you have some time, you can evaluate it through a more holistic lens. Most people typically focus on negotiating the &lt;strong&gt;base salary&lt;/strong&gt;, and miss out on opportunities to indirectly increase the overall value of their &lt;strong&gt;total compensation&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;For example, two employees in the same role may have identical base salaries of $80k. If Employee A was able to negotiate a larger signing bonus and equity compensation, then Employee B would be getting less value out of their &lt;strong&gt;total compensation&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Your base salary only accounts for one portion of your total compensation. &lt;/p&gt;

&lt;p&gt;Here's an example of what you might consider when evaluating the total compensation package being offered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Base salary&lt;/strong&gt;: The amount of money you earn before any deductions or additional compensation are applied. Base salary typically makes up 50% to 70% of your total compensation. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign-on bonus&lt;/strong&gt;: A one-time payment offered to a prospective employee as an incentive to join the company. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Health benefits&lt;/strong&gt;: In addition to medical, dental, and vision care, there are a variety of options for health plans to consider when evaluating your compensation package. A Health Savings Plan (HSA) and Flexible Spending Account (FSA) can be used to set aside pre-tax dollars to pay for various health expenses. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retirement plans&lt;/strong&gt;: Some companies offer 401(k) matching for every pre-tax or Roth dollar saved. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Annual bonus&lt;/strong&gt;: A yearly lump-sum payment given as a reward to supplement the base salary. An annual bonus is usually based on your performance, although it can sometimes be based on how well the company does throughout the year. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Equity compensation&lt;/strong&gt;: A non-monetary grant of stock, stock options, etc. that represents ownership of a company. Equity is an effective way to motivate employee retention as it vests over time (usually 4 years). &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extra perks&lt;/strong&gt;: Some perks can differ greatly depending on the company, or may even be unique to a specific company! Here are some examples of extra perks that can add real value to your compensation package.

&lt;ul&gt;
&lt;li&gt;Daily catered lunches &lt;/li&gt;
&lt;li&gt;Fitness reimbursement for gym memberships or classes&lt;/li&gt;
&lt;li&gt;Reimbursement for &lt;a href="https://www.educative.io/blog/individual-contributor-or-engineering-manager?eid=5082902844932096" rel="noopener noreferrer"&gt;professional development&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Tuition reimbursement for college coursework&lt;/li&gt;
&lt;li&gt;Employee discounts&lt;/li&gt;
&lt;li&gt;Commuter benefits &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Recruiters are often flexible when it comes to negotiating non-monetary or near-monetary forms of compensation. These can be good places to target for improving the overall value of your package. &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Prepare and justify your counter offer
&lt;/h3&gt;

&lt;p&gt;Once you've received an offer and done your research, it's time to identify the terms you want to negotiate and your reasons for negotiating them. &lt;/p&gt;

&lt;p&gt;At this point, it's good to remind yourself that the person you're negotiating with is eager to have you on board and is happy to collaborate with you to make things work. You should make sure that you have a solid justification for every item that you plan on negotiating. &lt;/p&gt;

&lt;h4&gt;
  
  
  Use objective metrics
&lt;/h4&gt;

&lt;p&gt;When talking to your hiring manager or recruiter, provide specific, objective metrics that illustrate pragmatic reasons for considering your counteroffer. &lt;/p&gt;

&lt;p&gt;When you've researched how others are being paid based on objective metrics like education or experience, you can compare these metrics to your own to determine your market value. &lt;/p&gt;

&lt;p&gt;Your market value should take into account:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Academic background &lt;/li&gt;
&lt;li&gt;Years of experience&lt;/li&gt;
&lt;li&gt;Professional qualifications&lt;/li&gt;
&lt;li&gt;Proven achievements &lt;/li&gt;
&lt;li&gt;Specialized knowledge or skills &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is easier to persuade someone that you deserve higher compensation if you're framing your counter offer from the perspective of others with your education, experience, and skills. &lt;/p&gt;

&lt;h4&gt;
  
  
  Prepare scripts
&lt;/h4&gt;

&lt;p&gt;Preparing scripts can be extremely helpful for staying calm and collected during the interview. Writing out scripts can also help you finetune answers to be more persuasive or align more closely with what the company is prioritizing. As you get further along in the interview process, start preparing scripts for when you receive a phone call with the offer and for negotiating various terms of the compensation package. &lt;/p&gt;

&lt;p&gt;For example, if you wanted to open up the conversation to the prospect of negotiation, you could try a script similar to the one below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You&lt;/strong&gt;: "Hi [Recruiter]! Thanks for taking the time to jump on a call to hammer out some details about the position with me today. I really appreciate how helpful you've been throughout this entire process. I was hoping to get clarification on some of the operational aspects of the role, touch base on the compensation package, and learn more about a recent initiative that [Interviewer] brought up during our last conversation." &lt;/p&gt;

&lt;p&gt;Here are some other great questions to ask when negotiating a job offer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Can you provide more details about the benefits and when they start?"&lt;/li&gt;
&lt;li&gt;"How are raises determined?" &lt;/li&gt;
&lt;li&gt;"Could you forward a written copy of the offer when you have the chance?" &lt;/li&gt;
&lt;li&gt;"When would you like an answer?" &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Practice negotiating
&lt;/h4&gt;

&lt;p&gt;Practice negotiating with a friend or family member. Even if you're practicing with yourself in front of a mirror, going through the conversation out loud can help you deliver your responses more eloquently later. &lt;/p&gt;

&lt;p&gt;Here are some examples of questions and dialogue that you can practice answering alone or with someone else:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"What is your expected salary range?" &lt;/li&gt;
&lt;li&gt;"Why do you deserve higher pay?"&lt;/li&gt;
&lt;li&gt;"There's no flexibility for negotiating compensation at this time."&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Be empathetic, honest, and respectful
&lt;/h4&gt;

&lt;p&gt;Successful negotiations come from a place of honesty, trust, and respect. Understand that your hiring manager or recruiter may have constraints that they just can't budge on, and don't assume that they're trying to cheat you out of a fair wage. From the perspective of the hiring manager or recruiter, their job is to make sure that your compensation is commensurate with the work you'll be doing.&lt;/p&gt;

&lt;p&gt;Be upfront and timely with any changes that might affect your decision as well. If you've received a job offer from another company, then it's okay to let them know what you've been offered to give them an opportunity to adjust their own offer. &lt;/p&gt;

&lt;p&gt;Finally, you should never:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fabricate or embellish a competing offer for the sake of using it to leverage a higher salary&lt;/li&gt;
&lt;li&gt;Negotiate in bad faith &lt;/li&gt;
&lt;li&gt;Be confrontational with the person you're negotiating with&lt;/li&gt;
&lt;li&gt;Show that you're offended or insulted by an offer &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up and next steps
&lt;/h2&gt;

&lt;p&gt;Preparing for an interview can be overwhelming, and negotiations can be especially tricky because they rely on so many different factors. Negotiations can be even more challenging and stressful for women in the tech industry because they have to &lt;a href="https://www.educative.io/blog/empowering-women-in-the-tech-world?eid=5082902844932096" rel="noopener noreferrer"&gt;overcome gender bias and other obstacles in the workplace&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;We believe that &lt;a href="https://www.educative.io/blog/womens-history-month-tech?eid=5082902844932096" rel="noopener noreferrer"&gt;diverse perspectives are key drivers of growth and innovation&lt;/a&gt;. As a result, making careers in tech more accessible and equitable has always been a priority at Educative. The Educative team has been working hard on developing new content to support women and underrepresented minorities interested in breaking into the tech industry.&lt;/p&gt;

&lt;p&gt;To hear more about the experiences of women who have established careers in the tech industry, check out the &lt;a href="https://www.educative.io/blog/being-your-own-role-model-woman-tech?eid=5082902844932096" rel="noopener noreferrer"&gt;Women in Tech&lt;/a&gt; series on our podcast, Educative Sessions.&lt;/p&gt;

&lt;p&gt;To get started learning these concepts and more, check out Educative's &lt;a href="https://www.educative.io/courses/grokking-comp-negotiation?eid=5082902844932096" rel="noopener noreferrer"&gt;Grokking Comp Negotiation in Tech&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy learning!&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Continue learning about career advice
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/being-your-own-role-model-woman-tech?eid=5082902844932096" rel="noopener noreferrer"&gt;7 tips: Being your own role model as a woman in tech&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/how-to-negotiate-salary-software-developer?eid=5082902844932096" rel="noopener noreferrer"&gt;How to negotiate your salary as a software developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/hercode-overcoming-imposter-syndrome?eid=5082902844932096" rel="noopener noreferrer"&gt;HerCode: Tips for overcoming imposter syndrome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>womenintech</category>
      <category>career</category>
      <category>inclusion</category>
    </item>
    <item>
      <title>LeetCode vs. Educative: Engaging your long-term memory</title>
      <dc:creator>Crystal Song</dc:creator>
      <pubDate>Tue, 05 Apr 2022 13:38:37 +0000</pubDate>
      <link>https://dev.to/educative/leetcode-vs-educative-engaging-your-long-term-memory-1k5h</link>
      <guid>https://dev.to/educative/leetcode-vs-educative-engaging-your-long-term-memory-1k5h</guid>
      <description>&lt;p&gt;How do you learn unfamiliar programming concepts quickly and thoroughly? &lt;/p&gt;

&lt;p&gt;You may have heard people endorse the benefits of practicing problems all the way to mastery, and the popularity of LeetCode suggests that this is a viable strategy for many individuals preparing for coding interviews. With the abundance of online learning platforms that are geared towards preparing people for tech interviews, it's actually fairly common to come across the same coding problem or other overlapping material on multiple sites. &lt;/p&gt;

&lt;p&gt;So how do you decide what platform works best for you? &lt;/p&gt;

&lt;p&gt;Let's take a step back because the answer to this question often lies in the metacognitive processes that shape our learning strategies.&lt;/p&gt;

&lt;p&gt;Today we'll discuss the role that metacognition plays in retaining new information, and how you can engage your long-term memory to learn concepts more efficiently. Then we'll compare some of the advantages and disadvantages of using LeetCode for interview prep, and discuss some of the reasons why Educative is a great alternative. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We'll cover&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What's the best way to learn new concepts?&lt;/li&gt;
&lt;li&gt;Why is LeetCode popular?&lt;/li&gt;
&lt;li&gt;What makes Educative better?&lt;/li&gt;
&lt;li&gt;LeetCode Premium vs. Educative Unlimited&lt;/li&gt;
&lt;li&gt;Wrapping up and next steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's the best way to learn new concepts?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Use metacognitive strategies
&lt;/h3&gt;

&lt;p&gt;What is metacognition? Metacognition is just thinking about &lt;strong&gt;how&lt;/strong&gt; you think and learn. If you find that you're spending a lot of time studying without absorbing the material, then it may be beneficial to reflect on what strategies you're using to learn new concepts. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://learningcenter.unc.edu/tips-and-tools/metacognitive-study-strategies/" rel="noopener noreferrer"&gt;Metacognitive strategies&lt;/a&gt; can help you assess what you know, what you should know, and how you should go about learning that information. &lt;/p&gt;

&lt;p&gt;One advantage of the course format for Educative is that it utilizes some metacognitive strategies for you. You don't need to figure out a roadmap for learning because courses come pre-built with one. All of our courses are designed by engineers and developers with years of industry experience, so you can trust that the roadmap will include a comprehensive overview of relevant concepts. &lt;/p&gt;

&lt;h3&gt;
  
  
  Connect concepts to create meaningful groups
&lt;/h3&gt;

&lt;p&gt;Instead of trying to piece together seemingly disparate groups of information, each course module flows seamlessly into the next. By building on concepts that you've learned, memorizing new information becomes easier, and more sustainable. &lt;/p&gt;

&lt;p&gt;Trying to memorize concepts in isolation works against our natural tendency to categorize information into schemas, which are mental frameworks that interrelate ideas and the relationships among them. &lt;/p&gt;

&lt;p&gt;Educative takes advantage of our ability to use schematic processing to quickly absorb new information by accompanying problems with contextual information. &lt;/p&gt;

&lt;h3&gt;
  
  
  Learn to recognize patterns instead of memorizing answers
&lt;/h3&gt;

&lt;p&gt;LeetCode focuses on learning how to solve problems through exposure (practice), but Educative puts more emphasis on learning how to recognize the underlying patterns of problems. Recognizing patterns forces you to focus on the bigger picture, which in turn, allows you to be more analytical, creative, and deliberate when it comes to creating a solution.  &lt;/p&gt;

&lt;p&gt;When interviewing at tech companies, your interviewers will want to know your thought process, and why you went with one solution over another.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Engage with interactive content
&lt;/h3&gt;

&lt;p&gt;Interactive material tends to be more memorable. Solving problems on Leetcode is &lt;em&gt;one&lt;/em&gt; way to interact with a concept. However, you might make better use of your time by familiarizing yourself with a concept and then using that newfound knowledge to build a &lt;a href="https://www.educative.io/projects?eid=5082902844932096" rel="noopener noreferrer"&gt;project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When you learn new concepts on Educative, you're not only solving problems, but you're also exposed to hundreds of opportunities to interact with concepts, play around with code, and test your skills. &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is LeetCode popular?
&lt;/h2&gt;

&lt;p&gt;LeetCode is an online learning platform that presents thousands of coding problems that are categorized by difficulty (Easy, Medium, or Hard). But &lt;a href="https://www.educative.io/blog/leetcode-interview-prep?eid=5082902844932096" rel="noopener noreferrer"&gt;is LeetCode the best way to prepare for interviews?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's take a quick look at some of the advantages of LeetCode.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages of Leetcode
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;LeetCode provides a wide range of coding questions, some of which may show up in interviews&lt;/li&gt;
&lt;li&gt;LeetCode supports the use of multiple programming languages&lt;/li&gt;
&lt;li&gt;LeetCode has a large and active community that provides users with opportunities to interact with other developers&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Disadvantages of LeetCode
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;LeetCode primarily tests the ability for you to perform well under pressure&lt;/li&gt;
&lt;li&gt;Trivia-style coding questions on LeetCode do not accurately represent the type of problems you'll be asked to work on as an engineer&lt;/li&gt;
&lt;li&gt;LeetCode does not prepare you for success in critical areas like the behavioral interview &lt;/li&gt;
&lt;li&gt;Grinding LeetCode questions can be tedious &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes Educative better?
&lt;/h2&gt;

&lt;p&gt;You may be wondering, What makes &lt;a href="https://www.educative.io/blog/getting-acquainted-educative?eid=5082902844932096" rel="noopener noreferrer"&gt;Educative different&lt;/a&gt;? &lt;/p&gt;

&lt;p&gt;Educative is a text-based learning platform that comes with a robust coding environment, curated learning paths, a variety of interesting visual aids, and frequent quizzes. &lt;/p&gt;

&lt;p&gt;Evaluations help you test newly acquired knowledge and require you to recall that information out of your working memory. Our courses apply this principle in the form of frequent quizzes. Quizzes are a quick and effective way to find gaps in your knowledge that could benefit from a refresher.&lt;/p&gt;

&lt;p&gt;Getting the right answer on a quiz can act as a form of positive reinforcement by providing opportunities for immediate feedback. According to a recent study published in the International Journal of Emerging Technology in Learning that measured the impact of online quizzes on student success, &lt;a href="https://www.learntechlib.org/p/219986/" rel="noopener noreferrer"&gt;immediate feedback had a strong, positive effect on maintaining interest and motivation&lt;/a&gt;. In addition, their findings support the conclusion that online quizzes enable the practice of self-monitoring while learning. Individuals who quizzed more often showed significant improvement in test results over individuals who quizzed sporadically (or not at all). &lt;/p&gt;

&lt;p&gt;Finally, if your goal is to succeed in interviews, then Educative provides a wealth of resources and courses dedicated to interviewing preparation.  &lt;/p&gt;

&lt;p&gt;Educative provides fantastic resources for advanced learners, but it's also very beginner-friendly. When you're first learning how to code, it can be overwhelming to figure out what to learn, and in what order. All of our courses take care of that for you, so all you have to do is spend time learning. &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  LeetCode Premium vs. Educative Unlimited
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Comparison table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;LeetCode Premium&lt;/th&gt;
&lt;th&gt;Educative Unlimited&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;$35/mo or $159/yr&lt;/td&gt;
&lt;td&gt;$199/yr for Standard or $299/yr for Premium*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coding Problems&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Solutions&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interview Prep Courses&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quizzes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Projects&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personalized Learning Plans&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access to over 300 courses&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Certifications&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Beginner-friendly&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interactive code editor&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Illustrations&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up and next steps
&lt;/h2&gt;

&lt;p&gt;Educative courses come packed with loads of interactive features that allow you to have more structure and control over your learning experience. Our platform enables you to learn at your own pace while keeping track of your progress! &lt;/p&gt;

&lt;p&gt;Also, because everything you need to learn is included within the platform, you never need to worry about downloading extra tools. Educative is an ultra-portable learning platform that focuses on producing high-quality technical courses that are rigorously vetted to meet industry standards. &lt;br&gt;
If you ever feel like grinding LeetCode problems isn't working out for you, then give Educative a try! We're confident that the quality of our course content will get you the results you're looking for. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy learning!&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Continue learning about interview prep
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/land-tech-job-advice?eid=5082902844932096" rel="noopener noreferrer"&gt;Land a job in tech: Career advice for recent college graduates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/netflix-software-engineer-interview?eid=5082902844932096" rel="noopener noreferrer"&gt;8 steps to an offer: Ace your Netflix software engineer interview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/how-to-prepare-system-design-interview?eid=5082902844932096" rel="noopener noreferrer"&gt;How to prepare for the System Design Interview in 2022&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>leetcode</category>
      <category>educative</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Top 13 data engineer interview questions (and tips)</title>
      <dc:creator>Crystal Song</dc:creator>
      <pubDate>Mon, 07 Mar 2022 20:18:07 +0000</pubDate>
      <link>https://dev.to/educative/top-13-data-engineer-interview-questions-for-2022-4ahe</link>
      <guid>https://dev.to/educative/top-13-data-engineer-interview-questions-for-2022-4ahe</guid>
      <description>&lt;p&gt;If you love problem-solving with &lt;a href="https://www.educative.io/blog/what-is-database-query-sql-nosql?eid=5082902844932096" rel="noopener noreferrer"&gt;SQL queries&lt;/a&gt; or Python and want to get more involved with big data, here are some data engineer interview questions and their answers to get you started! &lt;/p&gt;

&lt;p&gt;There has been explosive growth in the average volume of big data being generated each day. Businesses can now use data modeling and data science to acquire valuable business intelligence and data engineers are uniquely equipped to transform, and interpret that sea of data sets. &lt;/p&gt;

&lt;p&gt;Individuals with data engineering skills are in high demand and the pay can be very generous. &lt;a href="https://www.levels.fyi/company/Facebook/salaries/Data-Engineer/#:~:text=Facebook%20Data%20Engineer%20Salaries%20%7C%20%24219,fyi&amp;amp;text=Benefits%20can%20add%20thousands%20of%20dollars%20to%20your%20offer" rel="noopener noreferrer"&gt;Data engineers at companies like Amazon and Facebook (Meta) have reported compensation packages ranging from $219-$458k&lt;/a&gt; per year. &lt;/p&gt;

&lt;p&gt;Furthermore, there will be some examples of typical data engineering interview questions, and lots of great resources for developing advanced interview knowledge. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We’ll cover&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Essential data engineering skills

&lt;ul&gt;
&lt;li&gt;Programming languages&lt;/li&gt;
&lt;li&gt;SQL and NoSQL&lt;/li&gt;
&lt;li&gt;Data analysis&lt;/li&gt;
&lt;li&gt;Mathematical foundations&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Interview process&lt;/li&gt;

&lt;li&gt;13 interview questions&lt;/li&gt;

&lt;li&gt;Wrapping up and next steps&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Let’s get started!&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Essential data engineering skills
&lt;/h2&gt;

&lt;p&gt;There are a few basic skills you’ll need to master before applying to a data engineering position. &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Programming languages
&lt;/h3&gt;

&lt;p&gt;First, you’ll need to know how to program. Set aside some time to practice going over algorithms and data structures. &lt;/p&gt;

&lt;p&gt;One of the leading programming languages used by data engineers is Python because it provides a plethora of useful libraries to facilitate data engineering. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key libraries used by data engineers include&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;matplotlib&lt;/strong&gt;: Used for data visualizations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pandas&lt;/strong&gt;: Used for data manipulation and visualization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;numPy&lt;/strong&gt;: Provides several mathematics and statistics functions
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;sklearn&lt;/strong&gt;: Used for machine learning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pyspark&lt;/strong&gt;: Used to handle Big Data (ETL + Hadoop)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a data engineer, you must know what data structures and algorithms are most suitable for different situations.&lt;/p&gt;

&lt;p&gt;Understanding the advantages and disadvantages when it comes to different methods of organizing and transforming data is essential for strategic decision-making.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data structures to know&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lists&lt;/li&gt;
&lt;li&gt;Arrays&lt;/li&gt;
&lt;li&gt;Hash tables &lt;/li&gt;
&lt;li&gt;Hash maps&lt;/li&gt;
&lt;li&gt;Stacks&lt;/li&gt;
&lt;li&gt;Queues&lt;/li&gt;
&lt;li&gt;Graphs&lt;/li&gt;
&lt;li&gt;Trees&lt;/li&gt;
&lt;li&gt;Heaps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Algorithms to know&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linear regression

&lt;ul&gt;
&lt;li&gt;Least-squares algorithm&lt;/li&gt;
&lt;li&gt;Lasso shooting for sparse solution&lt;/li&gt;
&lt;li&gt;Polynomial regression&lt;/li&gt;
&lt;li&gt;General feature transformations&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Linear discriminants 

&lt;ul&gt;
&lt;li&gt;Support vector machine (SVM)&lt;/li&gt;
&lt;li&gt;Kernels and infinite-dimensional feature maps&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Logistic regression&lt;/li&gt;

&lt;li&gt;Ensemble learning

&lt;ul&gt;
&lt;li&gt;Decision tree (CART)&lt;/li&gt;
&lt;li&gt;Random forests&lt;/li&gt;
&lt;li&gt;Adaptive boosting &lt;/li&gt;
&lt;li&gt;Gradient boosting &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Generative learning

&lt;ul&gt;
&lt;li&gt;Naive Bayes classifier &lt;/li&gt;
&lt;li&gt;Markov models&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;K-nearest neighbors&lt;/li&gt;

&lt;li&gt;Unsupervised learning

&lt;ul&gt;
&lt;li&gt;K-means clustering&lt;/li&gt;
&lt;li&gt;Spectral clustering &lt;/li&gt;
&lt;li&gt;Principal component analysis &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Artificial neural networks (ANN) 

&lt;ul&gt;
&lt;li&gt;Convolutional neural networks&lt;/li&gt;
&lt;li&gt;Recurrent neural networks&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  SQL and NoSQL
&lt;/h3&gt;

&lt;p&gt;Next, you'll need a deep understanding of &lt;a href="https://www.educative.io/blog/top-40-sql-interview-questions?eid=5082902844932096" rel="noopener noreferrer"&gt;SQL for your interviews&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Knowing SQL can help you work in popular &lt;a href="https://www.educative.io/blog/relational-database-deep-dive?eid=5082902844932096" rel="noopener noreferrer"&gt;relational database&lt;/a&gt; management systems like MySQL (open-source), Microsoft SQL Server, and Oracle Database.&lt;/p&gt;

&lt;p&gt;These days, most data is distributed over the cloud. Examples of distributed databases &lt;a href="https://www.educative.io/blog/mongodb-with-docker" rel="noopener noreferrer"&gt;include MongoDB&lt;/a&gt;, DynamoDB, BaseX, Ignite, Hazelcast, and Coherence. These non-relational databases are called NoSQL databases. &lt;/p&gt;

&lt;p&gt;Instead of SQL, you can manipulate data from NoSQL databases using Object-Relational Mapping (ORM). We strongly recommend brushing up on ORM for your data engineering interviews. &lt;/p&gt;

&lt;p&gt;NoSQL databases can be further classified into the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Graph databases&lt;/li&gt;
&lt;li&gt;Column-oriented databases&lt;/li&gt;
&lt;li&gt;Document-oriented databases&lt;/li&gt;
&lt;li&gt;Key-value databases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data analysis
&lt;/h3&gt;

&lt;p&gt;Data engineers should have the technical skills to &lt;strong&gt;extract&lt;/strong&gt;, &lt;strong&gt;represent&lt;/strong&gt;, and &lt;strong&gt;analyze&lt;/strong&gt; data using efficient data structures and statistical modeling. Cultivating a familiarity with the dependencies of different data attributes will enable you to design better target models. Learning these dependencies can be accomplished by using descriptive statistics to some extent. &lt;/p&gt;

&lt;p&gt;In addition, data needs to be standardized and prepared using data preprocessing techniques to optimize for better performance. For example, real data consists of a mixture of several data types including &lt;strong&gt;text&lt;/strong&gt;, &lt;strong&gt;dates&lt;/strong&gt;, &lt;strong&gt;numbers&lt;/strong&gt;, etc. &lt;br&gt;
In contrast, &lt;a href="https://www.educative.io/blog/machine-learning-for-data-science?eid=5082902844932096" rel="noopener noreferrer"&gt;a machine learning model&lt;/a&gt; will expect all data to be numeric. Data preprocessing includes encoding the data into numeric form by preserving the information in the data. &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Mathematical foundations
&lt;/h3&gt;

&lt;p&gt;Finally, a data engineer must have a strong understanding of the different branches of mathematics. Mathematical foundations are essential for anyone who wishes to understand and manipulate data as a science. &lt;/p&gt;

&lt;p&gt;The key branches of mathematics for a data engineer are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discrete mathematics&lt;/li&gt;
&lt;li&gt;Probability and statistics&lt;/li&gt;
&lt;li&gt;Linear algebra&lt;/li&gt;
&lt;li&gt;Calculus &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Interview process
&lt;/h2&gt;

&lt;p&gt;The hiring process at major companies like Amazon, Microsoft, Google, and Netflix typically consists of multiple rounds of behavioral and technical interviews. Writing Python for these interviews can be helpful, but you can generally use whatever programming language you are most comfortable in (like Java or C++). &lt;/p&gt;

&lt;p&gt;The interview process varies from company to company but you can expect most interviews to follow a format similar to the one outlined below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Prescreening&lt;/strong&gt;: A recruiter contacts you to schedule a short phone call to go over your resume and complete a technical challenge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phone interview&lt;/strong&gt;: The recruiter contacts you to schedule a phone interview with a senior engineer or engineering manager.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On-site or virtual interviews&lt;/strong&gt;: After the phone interview, you will be invited to participate in several rounds of interviews with hiring managers and team engineers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lunch interview&lt;/strong&gt;: There is sometimes a more casual “interview” that takes place when your interviewers take you out to lunch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HR interview&lt;/strong&gt;: This is the final interview where the hiring manager goes over anything not covered in the on-site or virtual interviews. At this point, an offer may be extended, and you’ll have the opportunity to discuss compensation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In total, the hiring process may take anywhere from 1 to 2 months to complete from start to finish. We recommend spending &lt;strong&gt;3 months&lt;/strong&gt; preparing for your interview.&lt;/p&gt;

&lt;p&gt;More resources for interview prep:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.codinginterview.com/interview-roadmap" rel="noopener noreferrer"&gt;Definitive Interview Prep Roadmap&lt;/a&gt;: A free 12-week self-study guide for the technical interview.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.codinginterview.com/" rel="noopener noreferrer"&gt;Interview guides by company&lt;/a&gt;: These guides cover the different interview stages at specific companies in greater detail.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/grokking-the-behavioral-interview?eid=5082902844932096" rel="noopener noreferrer"&gt;Grokking the Behavioral Interview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  13 data engineer interview questions
&lt;/h2&gt;

&lt;p&gt;Although this isn’t an exhaustive list, you can generally expect to encounter questions similar to the examples below. Be prepared to write Python scripts, describe and compare algorithms, and solve math problems. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The answer key for questions 1-10 is located at the bottom of this section.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1. What is the best model for classification?
&lt;/h3&gt;

&lt;p&gt;A. Support vector machine &lt;br&gt;
B. Deep neural network&lt;br&gt;
C. Random forest&lt;br&gt;
D. Depends upon data (no free lunch theorem) &lt;/p&gt;

&lt;h3&gt;
  
  
  2. How can you compute the Frobenius norm of the difference between two matrices, say P and Q, in Python?
&lt;/h3&gt;

&lt;p&gt;A. np.sum(((P-Q)&lt;strong&gt;2))&lt;/strong&gt;0.5&lt;br&gt;
B. np.sum((P.flatten()-Q.flatten())&lt;strong&gt;2)&lt;/strong&gt;0.5&lt;br&gt;
C. np.linalg.norm(P-Q)&lt;br&gt;
D. All of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  3. What are the benefits of using a convolutional neural network over a vanilla deep neural network for object detection tasks in images?
&lt;/h3&gt;

&lt;p&gt;A. Convolutional neural network uses parameter sharing&lt;br&gt;
B. Convolutional neural network makes detection, translation-invariant&lt;br&gt;
C. Both A and B&lt;br&gt;
D. None of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  4. What is the key difference between supervised and unsupervised learning?
&lt;/h3&gt;

&lt;p&gt;A. Unsupervised learning focuses on regression in contrast to supervised learning, which focuses on classification.&lt;br&gt;
B. Unsupervised learning focuses on clustering data, in contrast to supervised learning, which focuses on classification and regression&lt;br&gt;
C. Unsupervised learning is used in &lt;a href="https://www.educative.io/blog/what-is-natural-language-processing?eid=5082902844932096" rel="noopener noreferrer"&gt;natural language processing&lt;/a&gt; whereas supervised learning is used in image processing&lt;br&gt;
D. None of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Which of the following classification algorithms is iterative (i.e., closed-form solution does not exist)?
&lt;/h3&gt;

&lt;p&gt;A. Logistic regression&lt;br&gt;
B. Support vector machine&lt;br&gt;
C. Adaboost&lt;br&gt;
D. All of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  6. What is overfitting?
&lt;/h3&gt;

&lt;p&gt;A. A model is said to overfit if training loss is small and validation loss is high&lt;br&gt;
B. A model is said to overfit if validation loss is zero&lt;br&gt;
C. A model is said to overfit if training loss is zero&lt;br&gt;
D. A model is said to overfit if it trains in constant time&lt;/p&gt;

&lt;h3&gt;
  
  
  7. What is the key difference between logistic regression and SVM?
&lt;/h3&gt;

&lt;p&gt;A. SVM generalizes well in high dimensional spaces in contrast to logistic regression&lt;br&gt;
B. SVM offers a sparse solution in contrast to logistic regression&lt;br&gt;
C. Logistic regression can be naturally extendable to multiple classes in contrast to SVM&lt;br&gt;
D. All of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  8. What problems best justify the use of Recurrent Neural Networks (RNNs)?
&lt;/h3&gt;

&lt;p&gt;A. The problems having time-series data of various lengths&lt;br&gt;
B. The problems involving image data&lt;br&gt;
C. The problems involving text data&lt;br&gt;
D. All of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  9. How are hyperparameters tuned?
&lt;/h3&gt;

&lt;p&gt;A. Through validation&lt;br&gt;
B. Through deep learning&lt;br&gt;
C. By using Markov chains&lt;br&gt;
D. All of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  10. What is the key reason for choosing neural networks as a default model?
&lt;/h3&gt;

&lt;p&gt;A. Neural networks are universal approximators&lt;br&gt;
B. Neural networks can be trained on a minimal quantity of data&lt;br&gt;
C. Neural networks offer faster training&lt;br&gt;
D. None of the above&lt;/p&gt;

&lt;h3&gt;
  
  
  11. What is a SequenceFile in Apache Hadoop, and what can it be used for?
&lt;/h3&gt;

&lt;p&gt;A SequenceFile is a type of binary file. It uses a flat file structure consisting of binary key-value pairs serialized in a stream of bytes.&lt;/p&gt;

&lt;p&gt;SequenceFile is useful for grouping large collections of small files (such as images) into a single file.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: While you might not necessarily need to answer questions about &lt;a href="https://www.educative.io/blog/what-is-hadoop-big-data?eid=5082902844932096" rel="noopener noreferrer"&gt;Hadoop in particular&lt;/a&gt;, you will need to be familiar with some kind of data framework and be able to answer questions similar to this one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  12. Explain the different ETL (Extract, Transform, Load) functions.
&lt;/h3&gt;

&lt;p&gt;ETL tools collect data from multiple sources and integrate them into a data warehouse, making it easier to analyze and store.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Extract&lt;/strong&gt;: This stage involves reading, collecting, and extracting data from a database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transform&lt;/strong&gt;: This stage involves transforming the extracted data into a format that makes it compatible with data analysis and storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load&lt;/strong&gt;: This stage takes transformed data and writes it into a new application or database.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  13. Design and build a data warehouse for managing inventory.
&lt;/h3&gt;

&lt;p&gt;A ubiquitous interview challenge for data engineering roles is being asked to do some data warehousing. A data warehouse is a type of data management system that contains large volumes of data and can be used to perform queries or data analytics.&lt;br&gt;
You could be asked to build a data warehouse for managing a catalog of courses, a digital archive of movies, and so on. Think about the goals for the data warehouse you will be building and what kind of queries would be useful for someone using it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify the different entities involved (products, promotions, customers, dates, location, etc.)&lt;/li&gt;
&lt;li&gt;Consider the relationships between the entities&lt;/li&gt;
&lt;li&gt;Visualize the relationships in a data model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you’ve finished building out your data warehouse, you may be asked questions that resemble the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the average number of times a customer purchases one of our products in a 30-day period?&lt;/li&gt;
&lt;li&gt;What promotions are most likely to increase sales?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions can be answered by running queries in SQL.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Answer key for questions 1-10&lt;/strong&gt;: D, D, C, B, D, D, A, A&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up and next steps
&lt;/h2&gt;

&lt;p&gt;Data engineering is a fantastic career choice for anyone with an analytic mind and a curiosity about the kind of information they can find in massive datasets. &lt;br&gt;
Learning the right skills to break into this career can be relatively straightforward. Once you’re comfortable with SQL and Python, you’ll have the knowledge you need to start learning how to design data models and build data warehouses. If you find that data engineering isn't right for you, but you still want to work with data, many of these skills are transferable to careers in data science, machine learning, and data analytics.&lt;/p&gt;

&lt;p&gt;We encourage you to check out some of the great resources we have here at Educative and wish you success in your interviews!&lt;/p&gt;

&lt;p&gt;To get started learning these concepts and more, check out Educative's learning path &lt;a href="https://www.educative.io/path/python-for-programmers?aff=x06V?eid=5082902844932096" rel="noopener noreferrer"&gt;&lt;strong&gt;Python for Programmers&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy learning!&lt;/em&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  Continue learning about data engineering
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/path/become-database-professional?eid=5082902844932096" rel="noopener noreferrer"&gt;Become a Database Professional with SQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/mongodb-complete-guide?eid=5082902844932096" rel="noopener noreferrer"&gt;MongoDB: The Complete Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/aws-dynamodb-nosql?eid=5082902844932096" rel="noopener noreferrer"&gt;DynamoDB Deep Dive: NoSQL for Software Engineers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>database</category>
      <category>sql</category>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Crack the top 40 SQL interview questions</title>
      <dc:creator>Crystal Song</dc:creator>
      <pubDate>Fri, 11 Feb 2022 00:36:38 +0000</pubDate>
      <link>https://dev.to/educative/crack-the-top-40-sql-interview-questions-1cbd</link>
      <guid>https://dev.to/educative/crack-the-top-40-sql-interview-questions-1cbd</guid>
      <description>&lt;p&gt;If you're seeking a career in data science, data analysis, or plan on working with databases at all, consider adding SQL (Structured Query Language) to your skillset. It's straightforward, easy to learn, and individuals with SQL experience are in high demand. &lt;/p&gt;

&lt;p&gt;One of the reasons there's such a strong demand for SQL skills is the &lt;strong&gt;widespread use of databases in virtually every field of business&lt;/strong&gt;. Databases can process much more data than traditional spreadsheets like Microsoft Excel, and SQL is used to access and extract that data within relational databases. As a result, relational database management systems (RDBMS) like Microsoft SQL Server, MySQL, and Oracle are the most popular database systems currently in use. &lt;/p&gt;

&lt;p&gt;Furthermore, SQL is frequently used alongside more powerful programming languages like Python or Java to analyze and manipulate data. Having SQL in your repertoire is a great way to increase your versatility and utility as a developer.&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://www.educative.io/courses/introductory-guide-to-sql?eid=5082902844932096" rel="noopener noreferrer"&gt;An Introductory Guide to SQL&lt;/a&gt; if you'd like to become better acquainted with the fundamental concepts of SQL. &lt;/p&gt;

&lt;p&gt;Let's get started! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We'll cover&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overview of the SQL interview&lt;/li&gt;
&lt;li&gt;Top 40 SQL interview questions&lt;/li&gt;
&lt;li&gt;Wrap up and additional resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of the SQL interview
&lt;/h2&gt;

&lt;p&gt;Due to the diverse applicability of SQL, there is a wide range of positions that could require you to demonstrate your knowledge of SQL, and the interview process will differ from role to role. &lt;/p&gt;

&lt;p&gt;In general, you can prepare by practicing writing error-free SQL queries and familiarizing yourself with the concepts that require a particular command. Interviewers are looking for candidates who are comfortable discussing the strengths and weaknesses of different SQL methods, understand how databases process indexes, joins, views, and can correctly identify optimal solutions for a variety of situations. The more you practice, the easier it will be to confidently tackle more complex SQL problems. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.educative.io/courses/introductory-guide-to-sql?eid=5082902844932096" rel="noopener noreferrer"&gt;An Introductory Guide to SQL&lt;/a&gt; goes over eight key areas of knowledge that frequently come up during SQL interviews:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Basic SQL&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Joins&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nested Queries&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-Table Operations&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Views&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stored Procedures&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Triggers&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Miscellaneous (e.g., triggers, foreign keys, etc.)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Remember to take some time to reflect on what you're learning and see if you can connect your technical knowledge to other experiences. It's great to hone your skills using technical challenges, but we also recommend sharpening your behavioral interviewing skills.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Check out&lt;/strong&gt;:&lt;br&gt;
&lt;a href="https://www.educative.io/courses/grokking-the-behavioral-interview?aid=5082902844932096&amp;amp;utm_source=google&amp;amp;utm_medium=paid&amp;amp;utm_content=search-dynamic&amp;amp;utm_term=&amp;amp;utm_campaign=%5BTest%5D+Dynamic+Verticals&amp;amp;utm_source=adwords&amp;amp;utm_medium=ppc&amp;amp;hsa_acc=5451446008&amp;amp;hsa_cam=14045073269&amp;amp;hsa_grp=133791763082&amp;amp;hsa_ad=574745736641&amp;amp;hsa_src=g&amp;amp;hsa_tgt=dsa-1596588574213&amp;amp;hsa_kw=&amp;amp;hsa_mt=&amp;amp;hsa_net=adwords&amp;amp;hsa_ver=3&amp;amp;gclid=Cj0KCQiArt6PBhCoARIsAMF5waj0sjiq-iDJ3LB7ch4ZdBKp9s8b4v9GSHffR9ABpXP2yCFl7e0vtjYaAm6cEALw_wcB?eid=5082902844932096" rel="noopener noreferrer"&gt;Grokking the Behavioral Interview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Top 40 SQL interview questions
&lt;/h2&gt;

&lt;p&gt;This section will cover 40 SQL questions that you should know before heading into an interview and should provide a general idea of the kind of questions to expect. &lt;/p&gt;
&lt;h3&gt;
  
  
  1. What is SQL?
&lt;/h3&gt;

&lt;p&gt;SQL is a non-procedural programming language developed by IBM in the 1970s and then later by Oracle. SQL is used by almost all relational databases to write queries, access, edit, and retrieve data. &lt;/p&gt;
&lt;h3&gt;
  
  
  2. What is a database?
&lt;/h3&gt;

&lt;p&gt;A database is an organized collection of digital information, or data, stored in a computer system. Unlike spreadsheets, a database can handle massive quantities of information while allowing multiple users access to the same database to run secure and independent queries. &lt;/p&gt;
&lt;h3&gt;
  
  
  3. What is an RDBMS, and how is it different from a traditional DBMS?
&lt;/h3&gt;

&lt;p&gt;An RDBMS or Relational Database Management System is essentially a database utilizing a tabular schema to organize multiple data elements related to each other. An RDBMS lets your define, create, and maintain relational databases in addition to providing controlled access to the data within. &lt;br&gt;
A DBMS or Database Management System functions similarly to the RDBMS described above. However, DBMS data elements are stored as files rather than in tabular form, and there is no relationship between different data elements. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related article&lt;/strong&gt;: &lt;a href="https://www.educative.io/blog/relational-database-deep-dive?eid=5082902844932096" rel="noopener noreferrer"&gt;What is a relational database? A deep dive&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Explain the different types of SQL commands.
&lt;/h3&gt;

&lt;p&gt;There are six basic types of SQL commands. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Commands&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Data Definition Language (DDL)&lt;/td&gt;
&lt;td&gt;Used to create and restructure relational database objects, such as tables.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CREATE TABLE&lt;/code&gt;, &lt;code&gt;ALTER TABLE&lt;/code&gt;, &lt;code&gt;DROP TABLE&lt;/code&gt;,  &lt;code&gt;CREATE INDEX&lt;/code&gt;, &lt;code&gt;ALTER INDEX&lt;/code&gt;, &lt;code&gt;DROP INDEX&lt;/code&gt;, &lt;code&gt;CREATE VIEW&lt;/code&gt;, &lt;code&gt;DROP VIEW&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Manipulation Language (DML)&lt;/td&gt;
&lt;td&gt;Used to manipulate data &lt;strong&gt;within&lt;/strong&gt; relational database objects.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt;, &lt;code&gt;DELETE&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Query Language (DQL)&lt;/td&gt;
&lt;td&gt;With only one command, DQL is used to perform queries within a relational database.&lt;/td&gt;
&lt;td&gt;&lt;code&gt;SELECT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Control Language (DCL)&lt;/td&gt;
&lt;td&gt;Used to control access to data within a relational database.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;ALTER PASSWORD&lt;/code&gt;, &lt;code&gt;GRANT&lt;/code&gt;, &lt;code&gt;REVOKE&lt;/code&gt;, &lt;code&gt;CREATE SYNONYM&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data administration commands&lt;/td&gt;
&lt;td&gt;Used to analyze database operations or conduct audits.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;START AUDIT&lt;/code&gt;, &lt;code&gt;STOP AUDIT&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transactional control commands&lt;/td&gt;
&lt;td&gt;Used to manage transactions within a relational database.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;COMMIT&lt;/code&gt;, &lt;code&gt;ROLLBACK&lt;/code&gt;, &lt;code&gt;SAVEPOINT&lt;/code&gt;, &lt;code&gt;SET TRANSACTION&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  5. What is the difference between SQL and MySQL?
&lt;/h3&gt;

&lt;p&gt;SQL is a programming language, while MySQL is a popular, open-source RDBMS. MySQL is used to store and organize data, while SQL is used to access, edit, update and maintain data in MySQL. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related article&lt;/strong&gt;: &lt;a href="https://www.google.com/url?q=https://www.educative.io/blog/mysql-tutorial&amp;amp;sa=D&amp;amp;source=docs&amp;amp;ust=1643822473606757&amp;amp;usg=AOvVaw1-kV6fFxwO5bYfrJcLaz2k?eid=5082902844932096" rel="noopener noreferrer"&gt;MySQL tutorial: The beginner's guide to using MySQL&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  6.  What is a &lt;code&gt;PRIMARY KEY&lt;/code&gt; constraint?
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;PRIMARY KEY&lt;/code&gt; constraint is a column or columns used to designate each table row with a unique identifier. A primary key may also be a composite of columns (a.k.a. composite key) can have its own index. You can think of a primary key as having a similar function to national government-issued identification numbers, a citizen's Social Security Number, or a vehicle identification number (VIN). &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: There's a limit of one &lt;code&gt;PRIMARY KEY&lt;/code&gt; constraint per table. All columns defined within a &lt;code&gt;PRIMARY KEY&lt;/code&gt; constraint must be defined as &lt;code&gt;NOT NULL&lt;/code&gt;. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  7. What is a &lt;code&gt;FOREIGN KEY&lt;/code&gt; constraint?
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;FOREIGN KEY&lt;/code&gt; is a column or collection of fields in a table referencing a &lt;code&gt;PRIMARY KEY&lt;/code&gt; in another table. The table containing the primary key is known as the parent table, and the table containing the foreign key is called the child table.  &lt;/p&gt;

&lt;p&gt;For example, the &lt;code&gt;PRIMARY KEY&lt;/code&gt; in the parent table below is &lt;code&gt;OwnerID&lt;/code&gt;. The &lt;code&gt;PRIMARY KEY&lt;/code&gt; uniquely identifies individual pet owners. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OwnerID&lt;/th&gt;
&lt;th&gt;LastName&lt;/th&gt;
&lt;th&gt;FirstName&lt;/th&gt;
&lt;th&gt;Address&lt;/th&gt;
&lt;th&gt;PetCount&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2498&lt;/td&gt;
&lt;td&gt;Smith&lt;/td&gt;
&lt;td&gt;Bonnie&lt;/td&gt;
&lt;td&gt;123 Mango Street&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2499&lt;/td&gt;
&lt;td&gt;Brown&lt;/td&gt;
&lt;td&gt;Thomas&lt;/td&gt;
&lt;td&gt;456 Papaya Way&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2450&lt;/td&gt;
&lt;td&gt;Goes&lt;/td&gt;
&lt;td&gt;Rosemary&lt;/td&gt;
&lt;td&gt;789 Apple Court&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For this child table, the &lt;code&gt;PRIMARY KEY&lt;/code&gt; is &lt;code&gt;PetID&lt;/code&gt;, and the &lt;code&gt;OwnerID&lt;/code&gt; column is a &lt;code&gt;FOREIGN KEY&lt;/code&gt; because it references the primary key of another table. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;PetID&lt;/th&gt;
&lt;th&gt;PetName&lt;/th&gt;
&lt;th&gt;Species&lt;/th&gt;
&lt;th&gt;OwnerID&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Whiskers&lt;/td&gt;
&lt;td&gt;Cat&lt;/td&gt;
&lt;td&gt;2450&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Gilgamesh&lt;/td&gt;
&lt;td&gt;Cockatiel&lt;/td&gt;
&lt;td&gt;2499&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Enkidu&lt;/td&gt;
&lt;td&gt;Cockatiel&lt;/td&gt;
&lt;td&gt;2499&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  8. What is a &lt;code&gt;UNIQUE&lt;/code&gt; constraint?
&lt;/h3&gt;

&lt;p&gt;Like the &lt;code&gt;PRIMARY KEY&lt;/code&gt;, the &lt;code&gt;UNIQUE&lt;/code&gt; constraint also ensures that each value is different from the others in its column. Tables can have multiple columns with &lt;code&gt;UNIQUE&lt;/code&gt; constraints.&lt;/p&gt;
&lt;h3&gt;
  
  
  9. What are SQL joins? What are the different types of joins?
&lt;/h3&gt;

&lt;p&gt;In SQL, a &lt;code&gt;JOIN&lt;/code&gt; clause combines rows of data in different tables with a shared column. You can &lt;code&gt;SELECT&lt;/code&gt; and return records with matching values in both tables based on this relationship. &lt;/p&gt;

&lt;p&gt;There are four kinds of &lt;code&gt;JOIN&lt;/code&gt; clauses in SQL: &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;code&gt;JOIN&lt;/code&gt; type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;INNER JOIN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Returns only the records with matching values in &lt;strong&gt;both&lt;/strong&gt; tables.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LEFT JOIN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Returns records in the left table in addition to records with matching values in both tables.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;RIGHT JOIN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Returns records in the right table, in addition to records with matching values in both tables.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;FULL OUTER JOIN&lt;/code&gt; or &lt;code&gt;FULL JOIN&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Returns all records with matches in either the left or right tables.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Related article&lt;/strong&gt;: &lt;a href="https://www.educative.io/blog/what-are-sql-joins?eid=5082902844932096" rel="noopener noreferrer"&gt;What are SQL joins? Types of SQL joins explained&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  10. What is a self join?
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;JOIN&lt;/code&gt; clause combines rows from two or more tables based on a related column between them. A self join is a regular join, but the table is joined with itself – this is extremely useful for comparisons within a table.&lt;/p&gt;

&lt;p&gt;Joining a table with itself means that each table row is combined with itself and with every other row of the table.&lt;/p&gt;
&lt;h3&gt;
  
  
  11. What is a cross join (Cartesian join)?
&lt;/h3&gt;

&lt;p&gt;In SQL, the cross join combines each row of the &lt;strong&gt;first&lt;/strong&gt; table with each row of the &lt;strong&gt;second&lt;/strong&gt; table. It is also known as the Cartesian join since it returns the Cartesian product of the sets of rows from the joined tables.&lt;/p&gt;
&lt;h3&gt;
  
  
  12. What's the difference between a &lt;code&gt;WHERE&lt;/code&gt; clause and a &lt;code&gt;HAVING&lt;/code&gt; clause?
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;WHERE&lt;/code&gt; clause can be used to establish the first condition that groups and returns only the rows that meet that condition into a result set. Then, secondary conditions can be applied using the &lt;code&gt;HAVING&lt;/code&gt; clause to return only the groups within that set that meet your new criteria. &lt;/p&gt;
&lt;h3&gt;
  
  
  13. What's the difference between a &lt;code&gt;TRUNCATE&lt;/code&gt; command and a &lt;code&gt;DELETE&lt;/code&gt; command?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Differences&lt;/th&gt;
&lt;th&gt;&lt;code&gt;DELETE&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;&lt;code&gt;TRUNCATE&lt;/code&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Type&lt;/td&gt;
&lt;td&gt;DML (Data Manipulation Language)&lt;/td&gt;
&lt;td&gt;DDL (Data Definition Language)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Function&lt;/td&gt;
&lt;td&gt;Used to remove specific rows or tuples from tables or relations.&lt;/td&gt;
&lt;td&gt;Used to delete &lt;strong&gt;all&lt;/strong&gt; rows or tuples from a table.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;WHERE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Can contain &lt;code&gt;WHERE&lt;/code&gt; clause.&lt;/td&gt;
&lt;td&gt;Cannot contain &lt;code&gt;WHERE&lt;/code&gt; clause.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transaction logging&lt;/td&gt;
&lt;td&gt;Row deletions are logged.&lt;/td&gt;
&lt;td&gt;Deleted data pages are not logged.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;TRUNCATE&lt;/code&gt; command is faster than &lt;code&gt;DELETE&lt;/code&gt;, but unlike the &lt;code&gt;DELETE&lt;/code&gt; command, data cannot be rolled back after using it to recover data that has been mistakenly deleted. &lt;/p&gt;
&lt;h3&gt;
  
  
  14. What is a query?
&lt;/h3&gt;

&lt;p&gt;In the context of this article, a query is a set of instructions written in a query language like SQL that allows an individual to access information held in a database. &lt;/p&gt;
&lt;h3&gt;
  
  
  15. What is a subquery?
&lt;/h3&gt;

&lt;p&gt;A subquery or &lt;strong&gt;nested query&lt;/strong&gt; is a query within a query. &lt;/p&gt;

&lt;p&gt;There are two types of subqueries: &lt;strong&gt;Correlated&lt;/strong&gt; and &lt;strong&gt;Non-correlated&lt;/strong&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Correlated&lt;/strong&gt; subqueries refer to a column in a table specified by the &lt;code&gt;FROM&lt;/code&gt; keyword of the main query.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-correlated&lt;/strong&gt; subqueries are independent and their output is substituted in the main query. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  16. What are &lt;code&gt;UNION&lt;/code&gt;, &lt;code&gt;UNION ALL&lt;/code&gt;, &lt;code&gt;MINUS&lt;/code&gt;, and &lt;code&gt;INTERSECT&lt;/code&gt; set operators?
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;UNION&lt;/code&gt; operation combines the results of two or more &lt;code&gt;SELECT&lt;/code&gt; statements. For example, getting the &lt;code&gt;UNION&lt;/code&gt; of sets A and B, this operation would return all rows from both sets, excluding any duplicate rows. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;UNION ALL&lt;/code&gt; operation does the same thing as &lt;code&gt;UNION&lt;/code&gt;, but includes duplicate rows in its result set. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;INTERSECT&lt;/code&gt; operation combines the results of two &lt;code&gt;SELECT&lt;/code&gt; statements but only returns the rows with matching values in &lt;strong&gt;both&lt;/strong&gt; sets. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;MINUS&lt;/code&gt; operation combines the results of two &lt;code&gt;SELECT&lt;/code&gt; statements but only returns rows with values that belong to the first set of the result. &lt;/p&gt;
&lt;h3&gt;
  
  
  17.  What are Normalization and Denormalization?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Normalization&lt;/strong&gt; refers to the methods used to remove redundancies and inconsistencies in a database. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Denormalization&lt;/strong&gt; refers to methods used to improve the performance of queries. &lt;/p&gt;

&lt;p&gt;Normalization introduces more tables to a database, whereas Denormalization reduces the number of tables. &lt;/p&gt;
&lt;h3&gt;
  
  
  18. What are scalar functions?
&lt;/h3&gt;

&lt;p&gt;Scalar functions are defined by the user and return a single value (i.e., int, char, float, etc.) based on the input value. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common SQL scalar functions&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;CONCAT()&lt;/code&gt; concatenates two or more character strings.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FORMAT()&lt;/code&gt; sets the format to display a collection of values.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;LEN()&lt;/code&gt; calculates the total length of a given column.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;MID()&lt;/code&gt; extracts substrings from a collection of string values.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ROUND()&lt;/code&gt; rounds the integer value for a numeric field.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;NOW()&lt;/code&gt; returns the current date and time.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;RAND()&lt;/code&gt; calculates a random collection of numbers of a given length.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  19. What are aggregate functions?
&lt;/h3&gt;

&lt;p&gt;In SQL, aggregate functions (also known as group functions) are applied to a group of values (or all values) to calculate and return a single value. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common SQL aggregate functions&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;AVG&lt;/code&gt; calculates the average or mean of all values in a group.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;COUNT&lt;/code&gt; calculates the number of rows in group, &lt;strong&gt;including&lt;/strong&gt; rows with &lt;code&gt;NULL&lt;/code&gt; values. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;MIN&lt;/code&gt; and &lt;code&gt;MAX&lt;/code&gt; returns the smallest and largest value in a group, respectively. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SUM&lt;/code&gt; returns the sum of all non-&lt;code&gt;NULL&lt;/code&gt; values in a group. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;STDDEV&lt;/code&gt; calculates the standard deviation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;VARIANCE&lt;/code&gt; calculates the variance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  20. What is a stored procedure?
&lt;/h3&gt;

&lt;p&gt;Instead of writing the same SQL query multiple times, you can save it as a stored procedure and call on it whenever necessary to execute it. &lt;/p&gt;

&lt;p&gt;Syntax for storing an SQL query:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE PROCEDURE procedure_name
AS
sql_statements
GO;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Syntax to execute a stored procedure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EXEC procedure_name;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  21. What is the &lt;code&gt;SELECT&lt;/code&gt; statement?
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;SELECT&lt;/code&gt; statement is used in SQL queries to store specific data elements or fields from a table and return them in a result set. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;SELECT&lt;/code&gt; syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT column_1, column_2, ...
FROM table_name;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Syntax for selecting all data elements from a table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM table_name;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  22. What is an index?
&lt;/h3&gt;

&lt;p&gt;An SQL index is a lookup table used by the database search engine to find and retrieve data quickly. An index can help make &lt;code&gt;SELECT&lt;/code&gt; and &lt;code&gt;WHERE&lt;/code&gt; clauses faster but can slow down the use of &lt;code&gt;UPDATE&lt;/code&gt; and &lt;code&gt;INSERT&lt;/code&gt; statements. ]&lt;/p&gt;

&lt;p&gt;To create an index:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE INDEX index_name ON table_name;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  23. What are some common clauses used with &lt;code&gt;SELECT&lt;/code&gt; queries in SQL?
&lt;/h3&gt;

&lt;p&gt;The basic SQL &lt;code&gt;SELECT&lt;/code&gt; statement contains three clauses: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;SELECT&lt;/code&gt; specifies the table columns to retrieve&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FROM&lt;/code&gt; specifies the tables to access&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WHERE&lt;/code&gt; is optional and specifies which rows in the &lt;code&gt;FROM&lt;/code&gt; tables to use &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;GROUP BY&lt;/code&gt; clause is used with aggregate functions to group the result set according to specified columns. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;HAVING&lt;/code&gt; clause functions similarly to the &lt;code&gt;WHERE&lt;/code&gt; clause but allows the use of aggregate functions. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;ORDER BY&lt;/code&gt; clause sorts the result set in ascending (&lt;code&gt;ASC&lt;/code&gt;) or descending (&lt;code&gt;DESC&lt;/code&gt;) order according to a specified column. &lt;/p&gt;

&lt;p&gt;When writing your &lt;code&gt;SELECT&lt;/code&gt; queries, make sure that your syntax follows this order:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  24. What are character manipulation functions?
&lt;/h3&gt;

&lt;p&gt;Character manipulation functions can edit, change, or reformat character strings. &lt;/p&gt;

&lt;p&gt;For example, you can concatenate two character strings by passing them into the &lt;code&gt;CONCAT&lt;/code&gt; function using a &lt;code&gt;SELECT&lt;/code&gt; query. &lt;/p&gt;

&lt;h3&gt;
  
  
  25. What is an SQL Server cursor? How do you use it?
&lt;/h3&gt;

&lt;p&gt;When you want to process result sets one row at a time, you can use a database cursor, a control structure that allows you to traverse records in a database. Cursors can be used to point to individual rows in a group of rows. &lt;/p&gt;

&lt;p&gt;You can &lt;code&gt;DECLARE&lt;/code&gt; a cursor after any variable declaration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DECLARE variable_name CHAR(20) 
DECLARE cursor_name CURSOR FOR
SELECT column_name 
FROM table_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  26. What are the different types of indexes?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clustered indexes&lt;/strong&gt; are &lt;strong&gt;clustered&lt;/strong&gt; together with the main body of data. A clustered index sorts and stores rows of data in a table or view sequentially, based on key values of the table to match the order of the index. There can only be &lt;strong&gt;one&lt;/strong&gt; clustered index per table. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-clustered indexes&lt;/strong&gt; are separate from, and cannot be used to store or sort data in the main table. The key values of the &lt;em&gt;index&lt;/em&gt;, and not the table are used to define the order of a non-clustered index. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Column store indexes&lt;/strong&gt; are a standard form of index that efficiently stores data in a column-based format, rather than row-oriented. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filtered indexes&lt;/strong&gt; are used to index a section of rows within a table. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hash indexes&lt;/strong&gt; are arrays, and use the Hash function &lt;code&gt;F(K, N)&lt;/code&gt;, where &lt;code&gt;K&lt;/code&gt; is critical and &lt;code&gt;N&lt;/code&gt; is the number of slots containing a pointer and row. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unique indexes&lt;/strong&gt; assign unique values to every row of data, so that the index key does not contain any duplicates. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  27. What is the difference between a clustered index and a non-clustered index?
&lt;/h3&gt;

&lt;p&gt;The order of rows in a &lt;strong&gt;clustered index&lt;/strong&gt; corresponds to the order of rows in the database. A table can only have one clustered index at a time.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;non-clustered index&lt;/strong&gt; functions similarly to a clustered index, but is slower and creates a separate entity within the table that references the original table. A table can have multiple non-clustered indices. &lt;/p&gt;

&lt;h3&gt;
  
  
  28. What are ACID properties?
&lt;/h3&gt;

&lt;p&gt;The ACID properties refer to properties that must be followed for transactions in a database management system to remain consistent.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Atomicity&lt;/strong&gt;: The entire transaction takes place at once or not at all. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt;: A database must be consistent before and after a transaction takes place. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Isolation&lt;/strong&gt;: Transactions occur independently and can run concurrently with others. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Durability&lt;/strong&gt;:  Updates to the database must be stored in and written to disk so that transaction records can persist in the event of a system failure. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  29. What is a schema?
&lt;/h3&gt;

&lt;p&gt;An SQL schema is an abstract representation of logically structured data elements. Database schemas in SQL are defined at the logical level by a database user known as the schema owner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related article&lt;/strong&gt;: &lt;a href="https://www.educative.io/blog/what-are-database-schemas-examples#what?eid=5082902844932096" rel="noopener noreferrer"&gt;What are database schemas? 5 minute guide with examples&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  30. What is an alias command?
&lt;/h3&gt;

&lt;p&gt;The alias (&lt;code&gt;AS&lt;/code&gt;) command makes columns or tables easier to read by giving them temporary names for the duration of a query. &lt;/p&gt;

&lt;h3&gt;
  
  
  31. How do you create empty tables with the same structure as another table?
&lt;/h3&gt;

&lt;p&gt;You can use shallow cloning to create a copy of an existing table's data structure and column attributes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE new_table LIKE table_1;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command creates an empty table based on the parent table. &lt;/p&gt;

&lt;h3&gt;
  
  
  32. How do you select unique records from a table?
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;SELECT DISTINCT&lt;/code&gt; clause will only return unique values from a table. &lt;/p&gt;

&lt;h3&gt;
  
  
  33. What is the default ordering of data using the order by clause? How could it be changed?
&lt;/h3&gt;

&lt;p&gt;The default ordering of data is ascending (&lt;code&gt;ASC&lt;/code&gt;). You can change the order by using the descending (&lt;code&gt;DESC&lt;/code&gt;) keyword with the &lt;code&gt;ORDER BY&lt;/code&gt; clause like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM table_name ORDER BY column_name DESC;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  34. What are some case manipulation functions in SQL?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LOWER&lt;/code&gt; or &lt;code&gt;LCASE&lt;/code&gt; takes in a given character string and converts it to lower case. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;UPPER&lt;/code&gt; or &lt;code&gt;UCASE&lt;/code&gt; takes in a given character string and converts it to upper case. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  35. What's the standard syntax for group functions?
&lt;/h3&gt;

&lt;p&gt;The general syntax is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT column_name, group_function(column_name)
FROM table_name
WHERE condition
GROUP BY column_name
ORDER BY column_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  36. What is the difference between &lt;code&gt;CHAR&lt;/code&gt; and &lt;code&gt;VARCHAR&lt;/code&gt; datatypes in SQL?
&lt;/h3&gt;

&lt;p&gt;The character or  &lt;code&gt;CHAR&lt;/code&gt; datatype stores &lt;strong&gt;fixed&lt;/strong&gt; length character strings. &lt;br&gt;
The variable character or &lt;code&gt;VARCHAR&lt;/code&gt; datatype stores &lt;strong&gt;variable&lt;/strong&gt; length character strings. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;CHAR&lt;/code&gt; has better performance than &lt;code&gt;VARCHAR&lt;/code&gt;, but &lt;code&gt;VARCHAR&lt;/code&gt; can be useful for anticipating data values without a set length. &lt;/p&gt;

&lt;h3&gt;
  
  
  37. What are user-defined functions in SQL? What are the various types?
&lt;/h3&gt;

&lt;p&gt;There are two types of functions in SQL: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;System Defined Functions (SDF) and &lt;/li&gt;
&lt;li&gt;User-Defined Functions (UDF)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;User-Defined Functions (UDFs) are similar to functions found in programming languages. UDFs accept parameters, perform complex calculations, and return their results. &lt;/p&gt;

&lt;p&gt;There are three types of UDFs: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scalar Functions&lt;/strong&gt; return only a single value (scalar value) of any data type &lt;strong&gt;except&lt;/strong&gt; text, ntext, image, cursor, and timestamp. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inline Table-Valued Functions&lt;/strong&gt; return a table of values. Only one &lt;code&gt;SELECT&lt;/code&gt; statement can be prepared by the return statement, and this statement defines the structure of the table that function returns. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Statement Table-Valued Functions&lt;/strong&gt; also return a table of values, but can contain multiple statements, and its table structure is defined by the user.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  38. What is the difference between SQL and PL/SQL?
&lt;/h3&gt;

&lt;p&gt;SQL is non-procedural and interacts directly with the database server. It's easy to learn and use, but if you need to solve more complicated SQL problems and are willing to learn some more complex concepts, then PL/SQL can be a powerful tool. &lt;/p&gt;

&lt;p&gt;PL/SQL is a procedural language that doesn't interact directly with the database server but offers a faster processing speed and an expanded range of supported features. You can accomplish everything you need to do in SQL and more using PL/SQL. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can be used to write functions, packages, procedures, program blocks, and more. &lt;/li&gt;
&lt;li&gt;Supports for variables, conditional statements, and iterators.&lt;/li&gt;
&lt;li&gt;Supports error and exception handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  39. What are entities and relationships?
&lt;/h3&gt;

&lt;p&gt;An &lt;strong&gt;entity&lt;/strong&gt; can be a real-world object that can be identified by a collection of related attributes or properties. An example of an entity in a zoo database might include zookeepers, veterinarians, different public outreach initiatives, or species of animals. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relationships&lt;/strong&gt; are connections between entities that are associated with each other. &lt;/p&gt;

&lt;p&gt;The logical relationship between entities creates a database. &lt;/p&gt;

&lt;h3&gt;
  
  
  40. What is collation? What are the different collation sensitivity?
&lt;/h3&gt;

&lt;p&gt;Collation is a configuration setting that specifies how a database sorts and compares data. Different collation rules can be configured to determine the correct character sequence used to sort the character data. &lt;/p&gt;

&lt;p&gt;Collation sensitivity can be used to specify how different characters are treated. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accent sensitivity&lt;/strong&gt; differentiates between &lt;strong&gt;a&lt;/strong&gt; and &lt;strong&gt;á&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Case sensitivity&lt;/strong&gt; differentiates between &lt;strong&gt;A&lt;/strong&gt; and &lt;strong&gt;a&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kana sensitivity&lt;/strong&gt; differentiates between Japanese Hiragana and Katakana.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Width sensitivity&lt;/strong&gt; treats characters of different widths (single-byte and double-byte) differently. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap up and additional resources
&lt;/h2&gt;

&lt;p&gt;Learning how to access, analyze, and understand information has become an invaluable skill to have, and the competition for individuals with SQL experience is stiff. Businesses are modernizing at a breakneck pace, and SQL has proven essential for companies eager to translate available data into innovative strategies and tangible results. We hope that you continue to seek and find new opportunities to expand your knowledge. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy learning!&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Courses
&lt;/h3&gt;

&lt;p&gt;To get started on learning these concepts and more, check out these courses at Educative! &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/database-design-fundamentals?eid=5082902844932096" rel="noopener noreferrer"&gt;Database Design Fundamentals for Software Engineers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/aws-dynamodb-nosql?eid=5082902844932096" rel="noopener noreferrer"&gt;DynamoDB Deep Dive: NoSQL for Software Engineers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Learning paths
&lt;/h3&gt;

&lt;p&gt;If you're ready to commit to a more challenging curriculum, get certified with one of our learning paths! &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/path/become-an-aws-professional?eid=5082902844932096" rel="noopener noreferrer"&gt;Learning Path: Become an AWS Professional&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/path/become-database-professional?eid=5082902844932096" rel="noopener noreferrer"&gt;Become a Database Professional with SQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>sql</category>
      <category>database</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>What are the differences between C# and Java?</title>
      <dc:creator>Crystal Song</dc:creator>
      <pubDate>Fri, 11 Feb 2022 00:04:56 +0000</pubDate>
      <link>https://dev.to/educative/what-are-the-differences-between-c-and-java-4n2e</link>
      <guid>https://dev.to/educative/what-are-the-differences-between-c-and-java-4n2e</guid>
      <description>&lt;p&gt;In this article, we'll be comparing the merits of two popular programming languages side-by-side: C# and Java. At their core, C# (pronounced &lt;em&gt;see sharp&lt;/em&gt;) and Java are both robust, high-level, object-oriented programming languages with more similarities than differences. One significant advantage to learning either language is that their fundamental similarities make it relatively easy to learn one language after mastering the other. &lt;/p&gt;

&lt;p&gt;Together, we'll look at a brief history of the two programming languages in question, their different applications, strengths, and what resources to explore to deepen your understanding of C# and Java.&lt;/p&gt;

&lt;p&gt;Let's jump right in! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We'll cover&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
C# and Java: A brief history

&lt;ul&gt;
&lt;li&gt;Origins of C#&lt;/li&gt;
&lt;li&gt;Origins of Java&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

Overview and applications: C# vs. Java

&lt;ul&gt;
&lt;li&gt;What is C#?&lt;/li&gt;
&lt;li&gt;What is Java?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

Comparing C# and Java

&lt;ul&gt;
&lt;li&gt;Comparison chart: C# vs. Java&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Which language should I learn?&lt;/li&gt;

&lt;li&gt;

Wrapping up and next steps
&lt;a&gt;&lt;/a&gt; 
&lt;h2&gt;
  
  
  C# and Java: A brief history
&lt;/h2&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Origins of C
&lt;/h3&gt;

&lt;p&gt;C# was first developed in 2000 as a direct competitor to Java by Anders Hejlsberg and his team at Microsoft. Like Java, C# was based on the C and C++ programming languages, referenced by its original name, "C.O.O.L.," or "C-like Object Oriented Language," but was designed with business and enterprise needs in mind.&lt;/p&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;In 2005, version 2.0 of C# introduced features generics and iterators to catch up to Java. Version 2.0 also introduced other major features such as partial types, anonymous methods, nullable value types, covariance, and contravariance. Though the first few versions of C# shared many similarities with C++ and Java, later releases helped distinguish C# as a unique language capable of facilitating object-oriented and functional programming. &lt;/p&gt;

&lt;p&gt;Although C# was originally closed-source and exclusive to development in the Microsoft ecosystem, new features and open-source tools were added to support cross-platform development.&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Origins of Java
&lt;/h3&gt;

&lt;p&gt;James Gosling began the development of Java at Sun Microsystems (later acquired by Oracle) as an alternative to the C++ programming language, with its first public implementation in 1995. &lt;/p&gt;

&lt;p&gt;Java's design requirements were centered around enabling the creation of robust and secure applications across multiple platforms while consuming the least amount of system resources. In addition, Gosling sought to create a language platform that would be simple and familiar to programmers, allowing them to grasp the fundamental concepts of the language quickly. &lt;/p&gt;

&lt;p&gt;What emerged was a highly reliable, open-source programming language that has proven ideal for developing network-based end-user applications across a wide range of environments. &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Overview and applications: C# vs. Java
&lt;/h2&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is C#?
&lt;/h3&gt;

&lt;p&gt;C# is a high-level, general-purpose, object-oriented, and notably, it is the &lt;strong&gt;first component-oriented&lt;/strong&gt; programming language. Like Java, C# is popular because it is versatile, easy to learn, and enjoys the support of a large community that has made many contributions to &lt;a href="https://www.educative.io/blog/building-dev-tools-and-designing-c-sharp-interview-eric-lippert?eid=5082902844932096" rel="noopener noreferrer"&gt;developing new C# tools&lt;/a&gt; and software. &lt;/p&gt;

&lt;p&gt;As a multi-paradigm programming language, C# supports object-oriented programming &lt;strong&gt;in addition to&lt;/strong&gt; functional, structured, imperative, reflective, and concurrent programming paradigms.&lt;/p&gt;

&lt;p&gt;C# programs run on the &lt;strong&gt;.NET Framework&lt;/strong&gt;, which has two main components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;.NET Framework

&lt;ul&gt;
&lt;li&gt;.NET Framework Class Library (FCL)

&lt;ul&gt;
&lt;li&gt;Frameworks&lt;/li&gt;
&lt;li&gt;Utility features written in .NET&lt;/li&gt;
&lt;li&gt;Wrappers around OS functionality&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Common Language Runtime (CLR)&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;.NET Framework class library (FCL)&lt;/strong&gt; is a collection of different classes, interfaces and &lt;a href="https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/types/?eid=5082902844932096" rel="noopener noreferrer"&gt;data types&lt;/a&gt; used to &lt;strong&gt;design&lt;/strong&gt; .NET applications. &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Common Language Runtime (CLR)&lt;/strong&gt; uses just-in-time (JIT) compilation to &lt;strong&gt;compile&lt;/strong&gt; the C# code used for .NET applications. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common applications of C#&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Game development&lt;/li&gt;
&lt;li&gt;Microsoft applications&lt;/li&gt;
&lt;li&gt;Web applications&lt;/li&gt;
&lt;li&gt;Desktop applications&lt;/li&gt;
&lt;li&gt;...and more! &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Java?
&lt;/h2&gt;

&lt;p&gt;Java is a high-level, general-purpose, object-oriented programming language. &lt;a href="https://www.educative.io/blog/learn-java-from-scratch?eid=5082902844932096" rel="noopener noreferrer"&gt;Java is popular amongst application developers because of its simplicity&lt;/a&gt;, versatility, and portability. Thanks to its large and well-established community, anyone looking to start a Java project will find that they have access to a massive collection of useful open source libraries and tools. &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Java Platform&lt;/strong&gt; or &lt;strong&gt;Java Development Kit (JDK)&lt;/strong&gt;, is the software development environment used to &lt;strong&gt;build and run&lt;/strong&gt; Java applications and components. The JDK can be deployed on Windows, macOS, Linux, and Solaris. &lt;/p&gt;

&lt;p&gt;You can think of the Java Platform as a series of nested packages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java Development Kit (JDK)

&lt;ul&gt;
&lt;li&gt;Java Runtime Environment (JRE)

&lt;ul&gt;
&lt;li&gt;Java Virtual Machine (JVM)&lt;/li&gt;
&lt;li&gt;Libraries &lt;/li&gt;
&lt;li&gt;Development tools (javac, java, etc.) &lt;/li&gt;
&lt;li&gt;Other files &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Java Runtime Environment (JRE)&lt;/strong&gt; is an installation package that sets up an environment where you can only &lt;strong&gt;run&lt;/strong&gt; a Java program or application. The JRE contains class libraries, loader classes, and the JVM. &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Java Virtual Machine (JVM)&lt;/strong&gt; is an interpreter and provides a runtime environment for your code. The JVM is a critical part of both the JDK and JRE, as it is responsible for going through each line of a Java program to execute it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common applications of Java&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Front-end web development&lt;/li&gt;
&lt;li&gt;Back-end web development&lt;/li&gt;
&lt;li&gt;Mobile applications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.educative.io/blog/what-is-big-data" rel="noopener noreferrer"&gt;Big data&lt;/a&gt; analytics&lt;/li&gt;
&lt;li&gt;Scientific computation applications&lt;/li&gt;
&lt;li&gt;Machine learning&lt;/li&gt;
&lt;li&gt;Data science&lt;/li&gt;
&lt;li&gt;...and more! &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparing C# and Java
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Similarities
&lt;/h3&gt;

&lt;p&gt;For the most part, C# and Java are reasonably similar because they're both high-level, object-oriented programming languages descended from C and C++. &lt;/p&gt;

&lt;p&gt;C# and Java share:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similar syntax (e.g., &lt;em&gt;static&lt;/em&gt;, &lt;em&gt;class&lt;/em&gt;, &lt;em&gt;int&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Advanced features like garbage collection&lt;/li&gt;
&lt;li&gt;Multiple class inheritance &lt;/li&gt;
&lt;li&gt;Cross-platform functionality
&lt;/li&gt;
&lt;li&gt;Intermediate language code generation 

&lt;ul&gt;
&lt;li&gt;C# compiler generates Microsoft Intermediate Language (MSIL)&lt;/li&gt;
&lt;li&gt;Java compiler generates Java bytecode &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;OOP concepts

&lt;ul&gt;
&lt;li&gt;Encapsulation&lt;/li&gt;
&lt;li&gt;Abstraction&lt;/li&gt;
&lt;li&gt;Inheritance&lt;/li&gt;
&lt;li&gt;Polymorphism&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison chart: C vs. Java
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Features of comparison&lt;/th&gt;
&lt;th&gt;C#&lt;/th&gt;
&lt;th&gt;Java&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Programming paradigm&lt;/td&gt;
&lt;td&gt;Object-oriented, component-oriented, functional, strong typing&lt;/td&gt;
&lt;td&gt;Object-oriented&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runtime environment&lt;/td&gt;
&lt;td&gt;Common Language Runtime (CLR)&lt;/td&gt;
&lt;td&gt;Java Virtual Machine (JVM)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Platform dependency&lt;/td&gt;
&lt;td&gt;Cross-platform (Windows preferred)&lt;/td&gt;
&lt;td&gt;Cross-platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checked exceptions&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enumerations&lt;/td&gt;
&lt;td&gt;Supported with the &lt;code&gt;yield&lt;/code&gt; statement&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pointers&lt;/td&gt;
&lt;td&gt;Supported in unsafe mode&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Conditional compilation&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structure and union&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arrays&lt;/td&gt;
&lt;td&gt;Specialization of Object&lt;/td&gt;
&lt;td&gt;Specialization of System&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;goto&lt;/code&gt; statement&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;strictfp&lt;/code&gt; keyword&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which language should I learn?
&lt;/h2&gt;

&lt;p&gt;Although C# and Java share enough similarities that it won't put you at a disadvantage to learn one and not the other, each language does possess certain strengths that are important to take into consideration. &lt;/p&gt;

&lt;p&gt;Here are some questions to ask when deciding between C# and Java:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What platform am I developing on?&lt;/li&gt;
&lt;li&gt;What types of applications will I be making?&lt;/li&gt;
&lt;li&gt;Is there a tool I want to use?
&lt;/li&gt;
&lt;li&gt;Are there industry-specific preferences? &lt;/li&gt;
&lt;li&gt;Does the company I want to work for have a preference?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consider learning Java first if you prioritize performance and want to create highly complex web applications or work with Android apps. Virtual Machine (VM) introspection is also noticeably better in Java. Also, let's not forget that Java's slogan is "Write once, run anywhere"! If portability is a top priority, Java is a clear winner. &lt;/p&gt;

&lt;p&gt;On the other hand, if you plan on developing games or working in the Microsoft ecosystem, it may be more advantageous to start out with C#. C# would also be the better choice if you're looking for better Language-Integrated Query (LINQ) and metaprogramming facilities. &lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up and next steps
&lt;/h2&gt;

&lt;p&gt;If you want to learn more about C# or Java, check out our courses and learning paths! Educative's learning paths are designed to help you develop valuable, practical skills at your own pace with interactive challenges and exercises. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.educative.io/path/java-for-programmers?eid=5082902844932096" rel="noopener noreferrer"&gt;Java for Programmers&lt;/a&gt;&lt;/strong&gt; is a great way to familiarize yourself with the Java programming language. This course is perfect for people who have programming experience but are new to Java. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.educative.io/courses/c-sharp-for-programmers-a-practical-guide?eid=5082902844932096" rel="noopener noreferrer"&gt;C# for Programmers: A Practical Guide&lt;/a&gt;&lt;/strong&gt; introduces you to fundamental programming concepts found in C#, such as loops, arrays, and object-oriented programming. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Happy learning!&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Continue learning about C# and Java
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/solid-principles-oop-c-sharp?eid=5082902844932096" rel="noopener noreferrer"&gt;S.O.L.I.D. Principles of Object-Oriented Programming in C#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/best-java-ides-2021?eid=5082902844932096" rel="noopener noreferrer"&gt;Top 10 best Java IDEs of 2021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/blog/why-java-is-more-secure-than-other-languages?eid=5082902844932096" rel="noopener noreferrer"&gt;6 reasons why Java is more secure than other languages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>csharp</category>
      <category>java</category>
    </item>
  </channel>
</rss>
