Here my suggested solution. It's intended for pedagogical purpose, because, as already stated in my comment, the direct implementation of a table or description is much more direct and simple. TBMK, LaTeX lacks a method to map a macro onto a list, hence we have to parse the list an use a loop.
There are dozen of methods to make a loop, as summarized in the post How to iterate over a comma separated list? on this site. Here I show how to implement a solution of the original question by using the listofitems package, that i find very convenient.
The list processing abilities of etoolbox package are much more efficient and robust (i use them systematically when I write a package) but, with listofitems, we can easily parse and iterate on multilevel lists, which is really suited here.
In the following MWE, I show how to parse the list in the OP and use it to create either a tabular as in @Partha D. answer, and a description as in the initial answer from @JouleV.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listofitems} % for the list parsing and loop
\usepackage{environ} % for handling the env BODY
\usepackage{array} % for tabular solution
\usepackage{enumitem} % for description solution
\usepackage{etoolbox} % for \xappto
\NewEnviron{testtab}{%
\setsepchar{;/:} \ignoreemptyitems
\readlist*\mylist\BODY%
\xdef\tmp{}%
\foreachitem\skill\in\mylist{%
\xappto\tmp{\mylist[\skillcnt,1]&\mylist[\skillcnt,2]\cr}%
}\noindent%
\begin{tabular}{@{}>{\bfseries}p{0.4\textwidth}@{}p{0.6\textwidth}}
\tmp
\end{tabular}
}
\NewEnviron{testdes}{%
\setsepchar{;/:} \ignoreemptyitems
\readlist*\mylist\BODY
\setlist[description]{font=\bfseries,align=parleft,labelwidth=0.4\textwidth,leftmargin=0.4\textwidth,noitemsep,labelsep=0pt,itemindent=!}
\begin{description}
\foreachitem\skill\in\mylist{%
\itemtomacro\mylist[\skillcnt,1]\skillkind%
\item[\skillkind] \mylist[\skillcnt,2]
}
\end{description}
}
\begin{document}
\subsection*{\sffamily Description,with \texttt{enumitem} settings}
\begin{testdes}
Operating systems : Unix (Linux, HP-UX, \ldots) ;
Programming Languages : Java, C, C++, Objective C, Hibernate, JUnit, JSTL, ASP.NET, C\#, VB.NET ;
Datastores : Bigtable, Hadoop, Cassandra, MongoDB, RocksDB, Oracle, MySQL ;
\end{testdes}
\subsection*{\sffamily Table, with \texttt{array} settings}
\begin{testtab}
Operating systems : Unix (Linux, HP-UX, \ldots) ;
Programming Languages : Java, C, C++, Objective C, Hibernate, JUnit, JSTL, ASP.NET, C\#, VB.NET ;
Datastores : Bigtable, Hadoop, Cassandra, MongoDB, RocksDB, Oracle, MySQL ;
\end{testtab}
\end{document}
giving the expected result:

In this code, we use the environ package which is necessary to retrieve the environment content (as the macro \BODY), enabling to process it as a whole.
In both defined environment, \BODY is read and parsed by \readlist*\mylist\BODY,
where the star ask for trimming extra white-spaces. The setting preceding this line define the separators ";" for first level and ":" for second level, and ask to ignore empty items.
Notice that I was lead to delete the surrounding braces on each line, and to add the ";" separators. Of course the list items delimited by curly braces could ne parsed by using " " as first level separator but the ":" is then not accessible to \readlist. A workarround would then to read only one level, and first strip the braces (e.g. with \StrRemoveBraces provided by xstring), before reading the second level.
The loop on elements is then done by using the \foreachitem\skill\in\mylist, but here the two methods differ significantly :
The description content can be defined iteratively inside the environment itself, hence the code is straightforward (except that \mylist[\skillcnt,1] must be stored in a macro to be accepted as the description item's labels). The formatting is provided by the enumitem package.
Oppositely, tabular expect that its content to be not provided line by line, but as a block. It is then necessary to build this content block (in \tmp macro) by looping outside the tabular environment, adding the successive lines with etoolbox's \xappto. The format is provided by the array package.
\begin{documents}and\end{documents}after a\section{...}command ? I think you want some environment likequoterather thandocument! ...Additionally to use #1 and #2 as arguments inside your command, you should use\newcommand{\resumeSubHeadingListStartForProgramming}[2]{...}– Partha D. Feb 13 '19 at 07:32{...}? Basically I just need to make texts like I have shown above by using my new command. – john Feb 13 '19 at 07:37