<?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: David Babayan</title>
    <description>The latest articles on DEV Community by David Babayan (@davidbabayan).</description>
    <link>https://dev.to/davidbabayan</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%2F563612%2F3aad4da5-b455-4635-8a8a-0002a2ce801e.jpg</url>
      <title>DEV Community: David Babayan</title>
      <link>https://dev.to/davidbabayan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/davidbabayan"/>
    <language>en</language>
    <item>
      <title>Azure Storage Table as a database</title>
      <dc:creator>David Babayan</dc:creator>
      <pubDate>Tue, 23 Aug 2022 22:18:00 +0000</pubDate>
      <link>https://dev.to/davidbabayan/azure-storage-table-as-a-database-5bnb</link>
      <guid>https://dev.to/davidbabayan/azure-storage-table-as-a-database-5bnb</guid>
      <description>&lt;p&gt;Usually when you build a website or an application you need to store your data somewhere. Depending on various aspects you choose which data storage to choose. The most popular options are MS SQL, PostgreSQL, MySQL, MongoDB, and Cosmos DB. These database engines are perfect if you need a data source with high usage. But there are many cases when the data is not going to be used so usually. &lt;/p&gt;

&lt;h2&gt;
  
  
  How did I come to this?
&lt;/h2&gt;

&lt;p&gt;Lately I found out that I am not that famous and not many people checking my personal website 😢&lt;br&gt;
Previously my website was connected to Azure SQL Database. I chose the lowest configuration of that service. It is so sad to confess but the resources never been used more then 10%. So, I thought maybe I should find cheaper service to contain my data. I have had two options SQLite or Azure Storage Table. The advantage of the second over SQLite is that you can access it using both SDK and API. And it is very similar to the Cosmos DB. So, I started migrating my website to the Azure Storage Table.&lt;/p&gt;
&lt;h2&gt;
  
  
  When would you think about it?
&lt;/h2&gt;

&lt;p&gt;Well, you should understand that the Azure Storage Table is not that fast. It is not created to replace your SQL or no SQL databases for high demand applications. Usually this can be helpful in two scenarios. The first scenario is when you have not much data or you do not access much. The second scenario is to archive the data in this service. It is cheap to store a large amount of that.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to get started?
&lt;/h2&gt;

&lt;p&gt;The first thing you need is Azure subscription. But if you don’t have you can Get $200 credit for experimenting with Azure services. With this credit you can create storage which will be free for the next 12 months. To create Azure Storage Table, you need to create regular Azure Storage and then from the left menu choose Azure Table. This will enable Table services.&lt;br&gt;
When you are done creating the service now you need to find two things: storage endpoint URL, storage name and Shared Key. Find the Endpoint section on the left menu. There you should copy and save the Table service endpoint URL. Then go to Access Keys. You will need the Storage account name and Key1’s key. &lt;br&gt;
Before starting coding maybe, you need to install Microsoft Azure Storage Explorer. This app will act as a Microsoft SQL Management Studio if you use SQL database.&lt;br&gt;
Now, there are two options on how to access and manage Azure Storage Table: SDK and API. You need to choose which one you will use. The SDK is available for .NET, Java, Python and TypeScript/JavaScript. If you use any of these technologies, then I strongly recommend using it. The SDK gets updates any time Microsoft makes any changes to the service or API. Plus, SDK adds more options for local models. If you develop in any other language or technology, then you will need to work with API. API is easy to implement so that can work as well. In this article I will show all the examples using C#/.NET and matching SDK.&lt;br&gt;
Creating Repository Class&lt;br&gt;
To add Azure Storage Table SDK to the project just add it from NuGet.&lt;br&gt;
&lt;code&gt;dotnet package add Azure.Storage.Tables&lt;/code&gt;&lt;br&gt;
Azure Storage Table SDK sends and receives dictionaries. So, you can implement not fixed schema. In my case I have hardcoded models with initially known properties. Let’s assume I need to keep information about my career. For this reason, I have created the JobInfo model. To use this model as an entity in SDK you have to implement ITableEntity interface. It includes four properties: PartitionKey, RowKey, Timestamp, ETag. These properties are used to separate the data and it is necessary if you archive data. Every time you try to create a new record in the table you have to add PartitionKey and RowKey values. Timestamp and ETag are filled in by Azure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class JobInfo : ITableEntity
{
    public int ID { get; set; }
    public string CompanyName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public string Position { get; set; }
    public string Description { get; set; }
    public bool IsCurrent { get; set; }
    public string CompanyLogo { get; set; }
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public DateTimeOffset? Timestamp { get; set; } = null;
    public ETag ETag { get; set; }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you need to create a Repository class. This class will implement the SDK functions and will prove connection to Azure. Usually, you will use dependency injection to implement this repository. But since I have only one table, I will implement it as a standalone class with all data. Create Repository class. This class will have one private read-only field of type TableServiceClient. Using this field, we will establish connection to Azure Storage. In a constructor implement this code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tableServiceClient = new TableServiceClient(
            new Uri("Storage URL from previous section"),
            new TableSharedKeyCredential(
                "Storage name from previous section",
                "Access Key from previous section”
            ));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we must implement five functions to have CRUD functionality. &lt;/p&gt;

&lt;p&gt;With tableServiceClient we connected to Azure Storage. Now we need to connect to the specific table. For this we use the following code:&lt;br&gt;
&lt;code&gt;TableClient table = tableServiceClient.GetTableClient(tableName);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now using the table, you can make any action to the table. Below is the code for CURD.&lt;br&gt;
*&lt;em&gt;Get all entities in the table: *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public List&amp;lt;T&amp;gt; GetEntities&amp;lt;T&amp;gt;(string tableName) where T : class, ITableEntity, new()
{
        TableClient table = tableServiceClient.GetTableClient(tableName);
        return table.Query&amp;lt;T&amp;gt;().ToList();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Get specific entity by partition and row: *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public T GetEntity&amp;lt;T&amp;gt;(string tableName, string partiionKey, string rowKey) where T : class, ITableEntity, new()
{
       var table = tableServiceClient.GetTableClient(tableName);
   return tableClient.GetEntity(partitionKey, rowKey);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Create new entity: *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public bool AddEntity&amp;lt;T&amp;gt;(string tableName, T entity) where T : class, ITableEntity, new()
{
        var table = tableServiceClient.GetTableClient(tableName);
        Response response = table.AddEntity(entity);
        if(response.IsError)
            return false;
        return true;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Update existing entity: *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public bool UpdateEntity&amp;lt;T&amp;gt;(string tableName, T entity) where T : class, ITableEntity, new()
{
        var table = tableServiceClient.GetTableClient(tableName);
        entity = table.UpdateEntity(entity);
        return entity;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Delete entity: *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public void DeleteEntity&amp;lt;T&amp;gt;(string tableName, string partiionKey, string rowKey) where T : class, ITableEntity, new()
{
       var table = tableServiceClient.GetTableClient(tableName);
   tableClient.DeleteEntity(partitionKey, rowKey);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you have a fully functioning repository which is ready to work as a database manager.&lt;/p&gt;

&lt;p&gt;P.S. After practicing this technology, I found following problems or undocumented issues. This list will be added by new issues I'll find. Please comment on any issue you have had and I will try to recreate and solve the problem.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If your entity contains any Date or Time values you should make sure the Kind property of the value is Utc. Otherwise, you will receive an error. By default, DateTime objects' Kind property is set either Local or Unspecified.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>azure</category>
      <category>database</category>
      <category>nosql</category>
    </item>
    <item>
      <title>Կարյերա ՏՏ ոլորտում - Ադմինիստրացիա</title>
      <dc:creator>David Babayan</dc:creator>
      <pubDate>Sat, 05 Mar 2022 23:41:20 +0000</pubDate>
      <link>https://dev.to/davidbabayan/karyera-tt-olortowm-administratsia-4nec</link>
      <guid>https://dev.to/davidbabayan/karyera-tt-olortowm-administratsia-4nec</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Ադմինիստրացիա&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eYSdMcVX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwdpxogqtv6pwa4ocig6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eYSdMcVX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwdpxogqtv6pwa4ocig6.png" alt="IT Administration" width="880" height="272"&gt;&lt;/a&gt;&lt;br&gt;
Յուրաքանչյուր համակարգ կարիք ունի վերահսկման և կառավարման։ ՏՏ ադմինիստրատորը կառուցում և վերահսկում է ընկերության թվային ինֆրաստրուկտուրան, ներառյալ ցանցերը, սարքերի կարգավորումները, սեռվեռները, կորպորատիվ հավելվածները, օգտագործողներին և հասնաելիությունը։ Այս ոլորտը նույնպես շատ հետաքրքիր է։ Ամպային տեխնոլոգիաների զարգացմամբ այս մասնագիտությունը վերափոխվել է ամպային տեխնոլոգիաների ինժիների մասնագիտության։ Իհարկե ես ձեզ խորհուրդ կտամ կենտրոնանալ ամպային տեխնոլոգիաների վրա։ Հիմա եկեք հասկանանք ինչպես սովորել այս մասնագիտությունը։&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Ինչպես սովորել&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Սկսիր համակարգչային ցանցերից&lt;/strong&gt;։ Սովորիր ինչպես է կարգավորված և ինչպես է աշխատում համակարգչային ցանցը։ Սա կօգնի որ հասկանաս ինչպես են աշխատում համակարգիչները, ինչպես է ինֆորմացիան ուղարկվում մեկ սարքից մյուս սարքը, ինչ է պորտը և ինչի համար է այն պատասխանատու, ինչ է ինֆորմացիայի տրանսպորտային տեխնոլոգիան և այլն։ Այս գիտելիքները կարելի է ստանալ ինչպես կարդալով այնպես է դիտելով։ Հաջորդիվ խորհուրդ եմ տալիս իմ կարծիքով օգտակար նյութերը՝&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3gZ6RaL"&gt;Networking for Beginners: An Easy Guide to Learning Computer Network Basics (Գիրք)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3BIn51F"&gt;Computer Networking: A Top-Down Approach (Գիրք)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/modules/network-fundamentals/"&gt;Fundamentals of computer networking (Հոդվածներ)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freevideolectures.com/course/3162/computer-networking-tutorial"&gt;Computer Networking Tutorial - Free Video Lectures (Վիդեո դասեր)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/introduction-to-computer-networks/"&gt;Introduction to Computer Networks for Non-Techies (Վիդեո դասեր)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/computer-networking-fundamentals-m/"&gt;Computer Networking Fundamentals (Վիդեո դասեր)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/world-of-computer-networking/"&gt;The World of Computer Networking (Վիդեո դասեր)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Սովորիր կառավարել համակարգիչը&lt;/strong&gt;։ Կարծում եմ երկար բացատրել պետք չէ ինչու էտ պետք լավ հասկանալ օպերացիոն համակարգերի անատոմիան։ Հետևյալ գրքերը կօգնեն սովորել՝&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amzn.to/36slYYu"&gt;Windows 10, Essentials for Administration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3IdmA2g"&gt;Windows Server 2019 Administration Fundamentals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/35bwfYu"&gt;Linux Administration: The Linux Operating System and Command Line Guide for Linux Administrators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3BCLFkz"&gt;Linux Administration: The Linux Operating System and Command Line Guide for Linux Administrators&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ծանոթացիր վիրտուալիզացիային&lt;/strong&gt;։ Վիրտուալիզացիան գաղափար է որի հետ հանդիպելու ես ամեն օր։ Ուստի շատ կարևոր է լավ հասկանալ ինչպես է այն աշխատում։ Անպայման կարդա այս գրքերը կամ մասնակցիր դասընթացներին`&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3uYoxvA"&gt;Building Virtual Machine Labs: A Hands-On Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/hyper-v-on-windows-server-2016-and-windows-10/"&gt;Hyper-V on Windows Server 2016 and Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/clearvsphere7/"&gt;Clear and Simple vSphere 7 Foundations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/a-complete-masterclass-of-virtualization-from-scratch/"&gt;A Complete Masterclass of Virtualization from scratch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ծանոթացիր ամպային տեխնոլոգիաներին&lt;/strong&gt;։ Ամպային տեխնոլոգիաները թույլ են տալիս ընկերությւոններրին վարձակալել սարքեր և օգտագործել պատրաստի ծրագրեր առանց անհանգստանալու կարգավորումների մասին։ Ամպային ինժիներները վաստակում են շատ ավելի քան տեղական ադմինիստրատորները։ Եթե ցանկանում ես ունենալ բարձր վարձատրվող աշխատանք անպայման սովորիր հաջորդ թեմաները։ Ավելի արդյունավետ այս պրոցեսը դարձնելու համար ընտրիր թե որ պլատֆորմի վրա ես ցանկանում սովորել կառավարել։&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Microsoft Azure&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/paths/az-900-describe-cloud-concepts/"&gt;Microsoft Azure Fundamentals: Describe core Azure concepts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/paths/az-900-describe-core-azure-services/"&gt;Microsoft Azure Fundamentals: Describe core Azure services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/microsoft-azure-beginners-guide/"&gt;Microsoft Azure - Beginner's Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/microsoft-azure-from-zero-to-hero-the-complete-guide/"&gt;Microsoft Azure: From Zero to Hero&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Amazon Web Services&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/training/"&gt;Learn AWS with Training and Certification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/aws-certified-solutions-architect-associate-saa-c02/"&gt;Ultimate AWS Certified Solutions Architect Associate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/aws-certified-associate-architect-developer-sysops-admin/"&gt;Amazon Web Services (AWS) Certified&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Google Cloud&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/google-cloud-platform-gcp-fundamentals-for-beginners/"&gt;Google Cloud Platform (GCP) Fundamentals for Beginners&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Այս քայլերը կօգնեն որպեսզի արագ յուրացնես այս մասնագիտությույնը։ Երբ ավարտես այս քայլերը չմոռանաս ինձ իմաց տալ։ Գուցե ես առաջարկ ունենամ քեզ։&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Կարյերա ՏՏ ոլորտում - Սարքերի ինժիներինգ</title>
      <dc:creator>David Babayan</dc:creator>
      <pubDate>Sat, 05 Mar 2022 23:39:55 +0000</pubDate>
      <link>https://dev.to/davidbabayan/inchpes-sksel-karyera-tt-olortowm-sarkeri-inzhinering-1loc</link>
      <guid>https://dev.to/davidbabayan/inchpes-sksel-karyera-tt-olortowm-sarkeri-inzhinering-1loc</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Սարքերի ինժիներինգ&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AsZUXMpR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/okp5yxtj6nge79hzj9wj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AsZUXMpR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/okp5yxtj6nge79hzj9wj.jpg" alt="chip development" width="880" height="305"&gt;&lt;/a&gt;&lt;br&gt;
Սարքերի ինժիները պատասխանատու է ֆիզիկական սարքերի նախագծման համար։ Այսպիսի սարքերը սկսում են փոքրիկ չիպերից և վերջանում մեծ սեռվեռային լուծումներով։ Սարքերի ինժինեռները սովորաբար աշխատում են լաբարատորիաներում որտեղ նախագծում ու փորձարկում են տարբեր սարքեր։ Այս մասնագիտության դրական կողմը բարձր աշխատավարձն է բացասականը աշխատատեղերի գրեթե բացակայությունը Հայաստանում։ Սակայն եթե ցանկանում եք տեղափոխվել Չինաստան, Կորեա կամ ԱՄՆ֊ի Վաշինգտոն նահանգ ապա աշխատանքի խնդիր չեք ունենա։ Եթե արդեն տիրապետում եք այս աշխատանքին ապա կարող եք ինքներդ փոքրիկ լուծումներ սարքել IoT ֆորմատով ու ով գիտի գուցե խոշոր պատվեր ստանաք։ &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Ինչպես սովորել&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Սկսիր մաթեմատիկայից&lt;/strong&gt;։ Այս մասնագիտությանը տիրապետելու համար դու պետք է շատ լավ հասկանաս ինչպես է հոսանքի հետ մանիպուլիացիաները վերածվում թվերի ապա թվային ինֆորմացիայի։ Եթե մի քանի տասնամյակ առաջ օգտագործվում էին պարզ ալգորիթմներ այս պրոցեսը կազմակերպելու համար սակայն նոր աշխարհի պահանջները ստիպում են ամեն օր կատարելագործել պրոցեսները։ Ալգորիթմները բարդացել են ուստի մաթեմատիկայի լավ իմացությունը պարտադիր է։ Եթե սովորել ես հայկական համալսարանում մաթեմատիկայի հետ կապված բաժնում ապա անցիր այս փուլը եթե ոչ ապա դիմիր տեղական համալսարաններից մեկը, վճարիր համապատասխան դասընթացի կրեդիտների համար պահանջվող գումարը և անցիր այդ դասընթացը (այո այո դու ճիշտ կարդացիր։ Կարելի է համալսարանում սովորել միայն մեկ դասընթաց վճարելով այդ դասընթացի կրեդիտների գումարը։ Ես ինքս այդպես արել եմ ոչ մեկ անգամ։ Մեկ դասընթացի արժեքը մոտ 40-50 հազար դրամ է կազմում)։ Քեզ պետք են հետևյալ թեմաները՝&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Դիսկրետ մաթեմատիկա,&lt;/li&gt;
&lt;li&gt;Գծային հանրահաշիվ,&lt;/li&gt;
&lt;li&gt;Թվերի տեսություն,&lt;/li&gt;
&lt;li&gt;Գրաֆերի տեսություն։
Չորս դասընթացն էլ կարելի է գտնել գրեթե բոլոր համալսարաններում։&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Սովորիր ֆիզիկա&lt;/strong&gt;։ Հատկապես քեզ պետք է լավ հասկանալ ինչ է և ինչպես է աշխատում հոսանքը։ Նաև պետք է սովորել ինչպես են աշխատում ինտեգրված սխեմաները։ Ինչպես նախորդ կետում խորհուրդ կտամ բազային կրթություն ստանալ մասնակցելով տեղական համալսարանների տվյալ թեմաներով դասընթացներին։&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Սովորիր ինչպես է աշխատում պրոցեսորը և օպերացիոն համակարգը&lt;/strong&gt;։ Պրոցեսորները համակարգչի ուղեղն է ուստի շատ կարևոր է հասկանալ ինչպես է այն աշխատում։ Օպերացիոն համակարգը պրոցեսորի «դրայվերն» է և կառավարում է նրա աշխատանքը։ Օպերացիոն համակարգի աշխատանքը հասկանալը կօգնի ավելի լավ պատկերացնել ժամանակակից պրոցեսորների տարբեր կտորների նպատակը և կիրառությունը։ Այստեղ արդեն պետք է սկսեք կարդալ։ Խորհուրդ կտամ հետևյալ գրքերը՝&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amzn.to/35dcvmZ"&gt;CPUs: Webster's Timeline History, 1955 - 2006&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/34SIj0I"&gt;CPU central processing unit: Lite Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3H5YTaL"&gt;Realtime Hardware Simulation and Modeling: MIPS CPU Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/35dcZcN"&gt;Operating System Concepts, 10th Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3LH1Hi1"&gt;Guide to Operating Systems 5th Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3ByZn7S"&gt;Integrated Circuit: Design, Fabrication, and Test&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Գնիր ինտեգրված սխեմաների փաթեթ&lt;/strong&gt;։ Ապա պատրաստեք ձեր առաջին չիպը։ Կարող եք գնելտարբեր տեսակի սենսոր սարքեր և փորձարկումներ անել։ Մի քանի շաբաթ փորձարկումներից հետո կտեսնեք որ ավելի լավ եք պատկերացնում ինչպես է աշխատում համակարգիչը։&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Սկսիր կամավորությունից&lt;/strong&gt;։ Նախորդ քայլերից հետո գտեք մոտակա համակարգիչների վերանորոգման մոտակա &lt;strong&gt;պաշտոնական&lt;/strong&gt; (հանկարծ չգնաք փինաչիների բուտկա) կենտրոնը։ Առաջարկեք իրենց մոտ կամակվոր լինել։ Սա կօգնի ձեզ գործնականում տեսնել և պատկերացնել ինչպես են տարբեր սխեմաներ միանում իրար և դառնում մեկ սարք։&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Շարունակիր կամավորությունը&lt;/strong&gt;։ ՀԻմա երբ ունես բավարար գիտելիքներ ինչպես է աշխատում պատրաստի սարքը ժամանակն է սովորես ինչպես են ստեղծվում այս սարքերը ու ինչ փուլեր են անցնում նրանք։ Գտիր որևէ ընկերություն որը զբաղվում է սարքերի արտադրությամբ։ Կապվիր նրանց հետ և համոզիր որպեսզի իրենց մոտ կամավոր լինես։ Դու արդեն բավարար փորձ ունես ուստի պետք է բավականին հեշտ լինի համոզել ընդունել քեզ։ Մնա այնտեղ 3-4 ամիս։&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Գտիր քո առաջին աշխատանքը&lt;/strong&gt;։ Քանի որ մեր հիմնական թեման ծրագրավորումն է ես սարքերի ինժիների համար նկարագրում եմ մինչև աշխատանքի հանցնելը։ Այն ընկերությունը որտեղ կամավոր ես հիմա ըստ ամենայնի հետաքրքրված կլինի որ անցնես աշխատանքի իրենց մոտ։ Եթե ոչ ապա գտիր քո հետաքրքրությունների ոլորտում ընկերություն և իրենց հետ կապնվիր։ HR-ները սիրում են տպավորիչ անսովոր պատմություններով մարդկանց։ Մի սպասիր որ աշխատանքի հայտարարություն լինի գտեք ընկերության HR մասնագետ և շփվեք իր հետ։ LinkedIn-ը կօգնի ձեզ այս հարցում։&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ես ինքս շատ հետաքրքված եմ այս ոլորտով և քիչ քիչ յուրացնում եմ այն։ Վստահ եմ մի օր կանցնեմ այս ոլորտ։&lt;/p&gt;

</description>
      <category>it</category>
      <category>career</category>
    </item>
    <item>
      <title>Կարյերա ՏՏ ոլորտում - Ծանոթություն</title>
      <dc:creator>David Babayan</dc:creator>
      <pubDate>Sat, 05 Mar 2022 23:39:44 +0000</pubDate>
      <link>https://dev.to/davidbabayan/inchpes-sksel-karyera-tt-olortowm-tsanotowtyown-3fl7</link>
      <guid>https://dev.to/davidbabayan/inchpes-sksel-karyera-tt-olortowm-tsanotowtyown-3fl7</guid>
      <description>&lt;p&gt;Հայաստանում ՏՏ ոլորտը աճում է ու ավելի շատ մարդիկ են ցանկանում մտնել այս ոլորտ։ Սակայն այս մարդկանց մեծ մասը ունենում է խնդիրներ ոլորտ մտնելու հարցում։ Խնդիրները հիմնականում երկու տեսակի են` ինչպես սովորել ծրագրավորում և ինչպես գտնել աշխատանք։ Որոշեցի անդրադառնալ այս հարցին։ Որպեսզի ձանձրալի չլինի յուրաքանչյուր հարցի և յուրաքանչյուր ոլորտի համար առանձին հոդված կգրեմ։&lt;/p&gt;

&lt;p&gt;Նախ պետք է հասկանալ որ ՏՏ֊ն միայն ծրագրավորում չէ։ Մեր ոլորտը ունի երեք հիմնական ուղղություններ` սարքերի ինժիներինգ, ադմինիստրացիա և ծրագրավորում։ Ուղղություններից յուրաքանչյուրը ունի իր դրական և բացասական կողմերը։ Այս հոդվածների շարքում կծանոթանանք այս ուղություններից յուրաքանչյուրին և գործնական քայլերին ինչպես սովորել ապա գտնել աշխատանք։&lt;/p&gt;

</description>
      <category>it</category>
      <category>career</category>
    </item>
    <item>
      <title>You should try new Live Preview extension for VS Code</title>
      <dc:creator>David Babayan</dc:creator>
      <pubDate>Wed, 28 Jul 2021 14:43:55 +0000</pubDate>
      <link>https://dev.to/davidbabayan/you-should-try-new-live-preview-extension-for-vs-code-28g8</link>
      <guid>https://dev.to/davidbabayan/you-should-try-new-live-preview-extension-for-vs-code-28g8</guid>
      <description>&lt;p&gt;The time is one of the most important things in life. For developers it is more important because every second cost a money. We are ready to do anything to be more productive. We are looking ways to make the process of writing code easy and time consuming. Let me introduce a tool which will help web developers' life way easier.&lt;/p&gt;

&lt;p&gt;Live Preview is VS Code extension made to preview your HTML/CSS code inside the VS Code. If you ever used &lt;a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer"&gt;Live Server&lt;/a&gt; extension then this one will be really similar to you! Let me bring 2 reasons why would you use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Save your time
&lt;/h3&gt;

&lt;p&gt;Some research shows that people working with multiple programs loose about three time more time than the process of switching itself. This means if your switch takes 1 second then you lose 3 second in reality. Now think how many times do you switch between code editor and browser. As second word of the name hints this extension will save your time by showing the preview of your code inside the editor. You will need no switch for long period of time. And as the first name hints it will refresh automatically as you type your code.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Let you build up local server
&lt;/h3&gt;

&lt;p&gt;This means your will get local IP address where your files and content will be hosted. This will allow you see your pictures and other files on preview pan. Also, you will be able to view your website on external browsers as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use it?
&lt;/h2&gt;

&lt;p&gt;First of all, you need to install it. Go to &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.live-server"&gt;Live Preview page on VS Code marketplace&lt;/a&gt; and press install button or go to the extension page of the VS Code and search for "Live Preview". Also, you can check the source code of the extension on &lt;a href="https://github.com/microsoft/vscode-livepreview"&gt;GitHub Repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After you installed it simply right click on your HTML file and press "Live Preview: Show Preview"...&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UcpbAAOu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/open-context-menu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UcpbAAOu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/open-context-menu.gif" alt="Open Preview"&gt;&lt;/a&gt;&lt;br&gt;
... Or press the preview button on the up-right corner.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7uXvSnwC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/open-preview-btn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7uXvSnwC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/open-preview-btn.gif" alt="Open Preview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You've created the local server which will preview the content on your page. Now look at the top of the preview. Do you see the address bar? It shows the page you are on. You can navigate to any file in your project by changing that path. Think of the IP address as the path from C: drive to the root folder of your project and add the file path as it is on Windows. You will see your files loaded on the preview pan. Also, you can go back and forward as you would in your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--djIu_tnT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/browser-demo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--djIu_tnT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/browser-demo.gif" alt="Browser option"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And last but not least, you have access to developer tools of the webpage.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aFdDhYPn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/webview-devtools-demo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aFdDhYPn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/webview-devtools-demo.gif" alt="Developer Tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even more, you can use the output pan of VS Code to view messages of the console.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0bACysTs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/console-demo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0bACysTs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://raw.githubusercontent.com/microsoft/vscode-livepreview/main/img/console-demo.gif" alt="Console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even though I am not active front-end developer but I can see how this tool will help me on my personal projects.&lt;/p&gt;

&lt;p&gt;I believe this tool should be included in every web developers' must-have list.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>tooling</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
