Had another interview yesterday. Everything was going great until they asked: "So tell us about your experience with prompt engineering and AI workflow optimization."I'm sitting there like... what? This was for a React developer position. Entry level.The job posting literally said "Junior Frontend Developer - React experience preferred." Sounds normal, right? Wrong. The interview was basically an AI interrogation. They spent 45 minutes asking about ChatGPT APIs instead of, you know, actual React code. Then they wanted to see my "AI-enhanced codebases" - like bro, I'm trying to get my first real job, not revolutionize artificial intelligence.My favorite question was when they asked how I'd "optimize prompts for code generation efficiency." I said I use ChatGPT to help debug and learn new concepts. Apparently that makes me a beginner. They need someone "more advanced than that."The kicker? This company's website is a basic landing page that probably took 2 hours to build. But sure, they need an AI expert for their junior position.What I actually know: React, Next.js, JavaScript for 3+ years. Node.js that I'm actively learning. I can build apps that work. I use AI tools to be more productive, like a normal person.What they apparently wanted: Some wizard who speaks fluent LangChain and dreams in semantic search algorithms.Is this the new reality? Should I be spending my weekends becoming a prompt engineer instead of learning system design? Or are companies just throwing AI buzzwords around because they heard it makes them sound smart?Because honestly, when did "junior developer" become "AI researcher who also happens to code"?Anyone else dealing with this madness?
Watch them stumble around because most have no clue.That, that 🫵🏻Honey, you just experienced the tech industry's midlife crisis in real time! 😂I've been doing this for 12 years and let me tell you - every few years there's a new buzzword that hiring managers latch onto without understanding it. Remember when every job needed "blockchain experience"? Or when "full-stack" meant you had to know 47 different frameworks?Half these interviewers couldn't explain prompt engineering if their stock options depended on it. They just know it sounds important.What I tell junior devs, master the basics first. I'd rather hire someone who writes clean, readable React code than someone who can generate spaghetti code with fancy AI prompts.And honestly? That company sounds like they're trying too hard. Good companies ask about problem-solving, not buzzword bingo.Keep your head up. The market is weird right now, but solid developers always find good homes. Just maybe avoid companies whose interviews sound like they were conducted by a chatbot! 🤖
I was working in Phoenix/Elixir and created a function component for navbar, and got this issue:Done in 38ms. Compiling 1 file (.ex) error: undefined function sigil_p/2 (expected RankgistWeb.NavComponents to define such a function or for it to be imported, but none are available) │ 55 │ href={~p"/users/log_out"} │ ^^^^^^^^^^^^^^^^^^^^^^^^^ │ └─ (rankgist 0.1.0) lib/rankgist_web/components/nav_components.ex:55: RankgistWeb.NavComponents.main/1 error: undefined function sigil_p/2 (expected RankgistWeb.NavComponents to define such a function or for it to be imported, but none are available) │ 45 │ href={~p"/track-competitors"} │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ └─ (rankgist 0.1.0) lib/rankgist_web/components/nav_components.ex:45: RankgistWeb.NavComponents.main/1 error: undefined function sigil_p/2 (expected RankgistWeb.NavComponents to define such a function or for it to be imported, but none are available) │ 8 │ <.link href={~p"/"} class="flex items-center space-x-3 rtl:space-x-reverse"> │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ └─ (rankgist 0.1.0) lib/rankgist_web/components/nav_components.ex:8: RankgistWeb.NavComponents.main/1 == Compilation error in file lib/rankgist_web/components/nav_components.ex == ** (CompileError) lib/rankgist_web/components/nav_components.ex: cannot compile module RankgistWeb.NavComponents (errors have been logged) Compiling 1 file (.ex) error: undefined function sigil_p/2 (expected RankgistWeb.NavComponents to define such a function or for it to be imported, but none are available) │ 55 │ href={~p"/users/log_out"} │ ^^^^^^^^^^^^^^^^^^^^^^^^^ │ └─ (rankgist 0.1.0) lib/rankgist_web/components/nav_components.ex:55: RankgistWeb.NavComponents.main/1 error: undefined function sigil_p/2 (expected RankgistWeb.NavComponents to define such a function or for it to be imported, but none are available) │ 45 │ href={~p"/track-competitors"} │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ └─ (rankgist 0.1.0) lib/rankgist_web/components/nav_components.ex:45: RankgistWeb.NavComponents.main/1 error: undefined function sigil_p/2 (expected RankgistWeb.NavComponents to define such a function or for it to be imported, but none are available) │ 8 │ <.link href={~p"/"} class="flex items-center space-x-3 rtl:space-x-reverse"> │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ └─ (rankgist 0.1.0) lib/rankgist_web/components/nav_components.ex:8: RankgistWeb.NavComponents.main/1 == Compilation error in file lib/rankgist_web/components/nav_components.ex == ** (CompileError) lib/rankgist_web/components/nav_components.ex: cannot compile module RankgistWeb.NavComponents (errors have been logged)to fix the issue of sigil_p/2 being undefined:defmodule LiveViewAppWeb.NavComponents do use Phoenix.Component use LiveViewAppWeb, :verified_routes def main(assigns) do ~H"""...use LiveViewAppWeb, :verified_routes adding this fixed it.
The key advantages of using a SaaS (Software as a Service) model for application development include: 1. Scalability: SaaS allows for easy scalability as users can access the software over the internet without needing to install anything locally.2. Cost-effectiveness: Users typically pay a subscription fee, spreading out costs over time rather than a large upfront investment.3. Accessibility: Since SaaS applications are cloud-based, users can access them from any device with an internet connection.4. Maintenance and updates: The provider is responsible for maintenance, updates, and security patches, relieving users of these tasks.5. Customization and integration: Many SaaS applications offer customization options and integrations with other software, allowing for tailored solutions.
Q2: Let A[n] be an array of n distinct integers. If i < j and A[i] > A[j], then the pair (i, j)is called an inversion of A. Write a C/C++ program that determines the number ofinversions in any permutation on n elements in O(n lg n) worst-case time.(Hint: Modify merge sort)Example: A = {4, 1, 3, 2} output is 4program:-#include<stdio.h> int total_inversions(int arr[], int n, int count); int main(){ int arr[] = {4, 1, 3, 2}; int n = sizeof(arr) / sizeof(arr[0]); int count = 0; count = total_inversions(arr, n , count); printf("%d", count); return 0; } int total_inversions(int arr[], int n, int count){ for(int i = 0; i < n-1; i++){ for(int j = i+1; j < n; j++){ if (arr[i] > arr[j]){ count++; } } } return count; }
Hey buddy!As you well know, the program you've suggested here is great, reliable but there's a certain hitch. It runs with a time complexity of O(n^2). This might not seem like a big deal but when you're dealing with huge arrays with a large number of elements, it may cause performance issues. The challenge here is finding the number of inversions in a permutation on n elements, but the trick is doing it within O(nlogn) worst-case time. A smart modification of the merge sort algorithm can be a real game changer here, and lucky for you, I tweaked it to our benefit here: #include<stdio.h> int merge(int arr[], int temp[], int left, int mid, int right); int _mergeSort(int arr[], int temp[], int left, int right); int inversionCount(int arr[], int n) { int temp[n]; return _mergeSort(arr, temp, 0, n - 1); } int _mergeSort(int arr[], int temp[], int left, int right) { int mid, inv_count = 0; if (right > left) { mid = (right + left)/2; inv_count = _mergeSort(arr, temp, left, mid); inv_count += _mergeSort(arr, temp, mid+1, right); inv_count += merge(arr, temp, left, mid+1, right); } return inv_count; } int merge(int arr[], int temp[], int left, int mid, int right) { int i, j, k; int inv_count = 0; i = left; j = mid; k = left; while ((i <= mid - 1) && (j <= right)) { if (arr[i] <= arr[j]) { temp[k++] = arr[i++]; } else { temp[k++] = arr[j++]; inv_count = inv_count + (mid - i); } } while (i <= mid - 1) temp[k++] = arr[i++]; while (j <= right) temp[k++] = arr[j++]; for (i=left; i <= right; i++) arr[i] = temp[i]; return inv_count; } int main(int argv, char **args) { int arr[] = {4, 1, 3, 2}; printf("Number of inversions are %d \n", inversionCount(arr, sizeof(arr)/sizeof(arr[0]))); return 0; } As you asked, this piece of code will help you get the inversion count in an array and that too in O(nlogn) time complexity, thanks to merge sort.And before I close the lid on this one, I hope you are doing alright handling the pointers and recursion here. The inversion counting part is the only trick in this pudding. Remember, for every i in the first array, if j is an element in the second array, all elements after i in the first subarray and j in the second subarray will form valid inversions. So simply add up (mid – i) inversions for all such valid i and j!This should help you out. Let me know if you need me to break it down more.Happy Coding!